Memahami Kata Kunci "ini" dalam Literal Objek JavaScript
Dalam literal objek dalam JavaScript, gelagat kata kunci "ini" mungkin agak berbeza daripada bahasa pengaturcaraan lain. Berikut ialah penjelasan komprehensif tentang cara ia berfungsi.
Pengikatan Masa Panggilan
Tidak seperti bahasa pengikatan lewat yang lain, JavaScript mengikat "ini" pada masa panggilan, bukan semasa penyusunan masa atau masa jalan. Ini bermakna nilai "ini" bergantung pada cara fungsi dipanggil.
Peraturan Mengikat
Peraturan mengikat untuk "ini" dalam literal objek JavaScript adalah seperti berikut:
Contoh Kes Penggunaan
Untuk menggambarkan peraturan mengikat yang berbeza:
const obj = { foo: "Foo", bar() { console.log(this.foo); // "Foo" - "this" refers to the object }, }; obj.bar(); // Calls the method, binding "this" to the object
function MyDate(date) { this.date = date; } const obj1 = { foo: new Date(), bar: new MyDate(this.foo), // Error: this.foo is undefined }; const obj2 = { foo: new Date(), bar: new MyDate(obj2.foo), // Works: "this" refers to obj2 };
Dalam contoh pertama, "ini" merujuk kepada objek "obj" kerana kaedah itu dipanggil sebagai kaedah objek. Dalam contoh kedua, "ini" tidak ditentukan dalam "obj1" kerana fungsi dipanggil tanpa sebarang konteks objek. Dalam "obj2," "this" merujuk kepada "obj2" kerana fungsi dipanggil secara eksplisit dengan objek "this".
Atas ialah kandungan terperinci Bagaimanakah Kata Kunci 'ini' Berkelakuan dalam Literal Objek JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!