Kejadian Di mana Pembina Mengembalikan Nilai Selain daripada 'ini'
Dalam JavaScript, apabila pembina dipanggil menggunakan kata kunci baharu, ia biasanya mengembalikan objek yang baru dibuat. Walau bagaimanapun, dalam keadaan tertentu, ia boleh mengembalikan nilai yang berbeza untuk mengelak daripada mengembalikan nilai ini.
Syarat untuk Mengembalikan Nilai Lain
Seperti yang digariskan dalam Spesifikasi ECMA-262 Edisi Ketiga [[Construct]] sifat dalaman (langkah 7), nilai pulangan pembina (Result(6)) menentukan sama ada ini akan dikembalikan atau tidak. Jika Result(6) ialah bukan jenis Objek, ia akan dikembalikan dan bukannya ini. Syarat ini penting untuk pelaksanaan pembina yang betul.
Contoh
Pertimbangkan pembina berikut:
function Foo() { return 10; // Returning a non-object primitive } var foo = new Foo();
Dalam contoh ini, sejak 10 ialah primitif bukan objek, ia akan dikembalikan sebagai hasil daripada pembina Foo(). Oleh itu, foo akan diberikan nilai primitif 10 dan (instance Foo() baharu bagi Foo) akan menilai kepada false kerana foo ialah jenis primitif.
Ringkasan
Ringkasnya, pembina boleh mengembalikan nilai selain daripada ini hanya apabila nilai pulangan pembina (Result(6)) adalah bukan jenis Objek. Keadaan ini membenarkan pembinaan objek dengan nilai bukan objek atau untuk menghantar kawalan kepada pembina lain.
Atas ialah kandungan terperinci Bilakah Pembina JavaScript Boleh Mengembalikan Sesuatu Selain 'ini'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!