Pulangan Nilai untuk Pembina Yang Melangkau Rujukan "ini"
Apabila memanggil pembina menggunakan kata kunci baharu, tingkah laku lalai adalah untuk pembina untuk mengembalikan objek yang baru dibuat (dirujuk sebagai "ini"). Walau bagaimanapun, terdapat keadaan tertentu di mana pembina boleh mengembalikan nilai yang berbeza, dengan berkesan menghalang penetapan "ini" kepada objek yang baru dibuat.
Menurut spesifikasi ECMAScript, langkah 8 [[Construct]] harta dalaman mentakrifkan tingkah laku pulangan seperti berikut:
Jika jenis nilai yang dikembalikan oleh fungsi pembina (Result(6)) bukan Objek:
- The value returned by the constructor will be returned instead of "`this`".
Oleh itu, untuk mengembalikan nilai selain daripada "ini" daripada pembina:
Contoh:
function Foo() { return { name: "sample" }; } var foo = new Foo(); console.log(foo instanceof Foo); // false
Dalam kes ini, sejak Foo constructor mengembalikan objek yang bukan instance Foo constructor, (new Foo() instanceof Foo) akan menilai kepada false.
Atas ialah kandungan terperinci Bolehkah Pembina Mengembalikan Nilai Selain daripada 'ini'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!