Rujukan Literal Objek dalam Fungsi Kunci Sendiri: Menilai Implikasi
Dalam JavaScript, adalah perkara biasa untuk memasukkan fungsi dalam literal objek, memberikan kemudahan cara untuk merangkum data dan tingkah laku. Walau bagaimanapun, kemusykilan timbul apabila mengakses sifat objek dalam fungsi ini: patutkah seseorang menggunakan ini atau merujuk secara langsung objek secara literal?
Menggunakan ini vs. Rujukan Objek Langsung
The contoh pertama yang disediakan dalam huraian masalah menggunakan ini untuk merujuk objek literal:
var obj = { key1: "it", key2: function(){return this.key1 + " works!"} }; alert(obj.key2());
Walau bagaimanapun, contoh kedua memintas ini dan merujuk secara langsung objek:
var obj = { key1: "it", key2: function(){return obj.key1 + " works!"} }; alert(obj.key2());
Potensi Perangkap Kedua-dua Pendekatan
Kedua-dua pendekatan boleh menimbulkan isu:
Menangani Perangkap
Kepada mengelakkan perangkap ini, beberapa pilihan wujud:
Pelaksanaan Selamat
Kod berikut menunjukkan pelaksanaan yang selamat menggunakan penutupan:
var obj = (function(){ var local = { key1: "it", key2: function(){ return local.key1 + " works always!" } }; return local; })();
Atas ialah kandungan terperinci `ini` lwn. Rujukan Objek Langsung dalam JavaScript: Pendekatan Mana Yang Lebih Selamat untuk Fungsi Bersarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!