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 "ini" daripada pembina:
Contoh:
function Foo() { return { name: "sample" }; } var foo = new Foo(); console.log(foo instanceof Foo); // false
Dalam kes ini, memandangkan pembina Foo mengembalikan objek yang bukan contoh pembina Foo, (contoh Foo() baharu bagi Foo ) akan menilai kepada palsu.
Atas ialah kandungan terperinci Bolehkah Pembina Mengembalikan Nilai Selain daripada 'ini'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!