Menggunakan "ini." dalam Pembolehubah Objek Javascript
Dalam Javascript, tidak seperti C , pembolehubah mesti diawali dengan "ini" secara eksplisit. merujuk kepada objek yang mereka miliki. Ini ialah perbezaan utama dalam pengaturcaraan berorientasikan objek antara kedua-dua bahasa.
Kata kunci "ini" dalam Javascript mewakili konteks semasa, iaitu objek yang digunakan untuk fungsi tersebut. Apabila anda mengisytiharkan pembolehubah tanpa "ini.", ia menjadi pembolehubah setempat dalam skop fungsi tersebut. Untuk mengakses sifat objek dari dalam fungsi, anda perlu menggunakan "ini." diikuti dengan nama sifat.
Pertimbangkan kod berikut:
function foo() { bar = 0; // This creates a local variable this.getBar = function() { return bar; } // This creates a privileged method }
Dalam kod ini, "bar" ialah pembolehubah setempat dalam fungsi "foo", manakala "getBar" ialah kaedah istimewa yang mempunyai akses kepada pembolehubah tempatan. Tanpa menggunakan "ini.", "getBar" tidak akan dapat mengakses "bar".
Pendekatan menggunakan "ini." adalah perlu untuk semua pembolehubah yang anda ingin akses dari dalam kaedah objek. Walau bagaimanapun, Javascript membenarkan anda untuk menentukan kaedah pada objek prototaip dan bukannya objek contoh. Kaedah yang ditakrifkan pada prototaip diwarisi oleh semua kejadian objek itu. Dalam kes ini, anda boleh mengelak daripada menggunakan "ini." untuk kaedah tersebut. Berikut ialah contoh:
function Foo() { this.bar = 0; } Foo.prototype.getBar = function() { return this.bar; }
Dalam kod ini, "getBar" ditakrifkan pada prototaip, jadi tika "Foo" mewarisi kaedah ini dan boleh mengakses "bar" tanpa memberi awalan "ini.".
Ringkasnya, menggunakan "ini." adalah penting untuk mengakses sifat objek dari dalam fungsi/kaedah yang ditakrifkan dalam objek contoh. Walau bagaimanapun, ia boleh dielakkan dengan mentakrifkan kaedah pada prototaip sebaliknya.
Atas ialah kandungan terperinci Bila dan Mengapa Anda Perlu Menggunakan 'ini.' dalam Pembolehubah Objek JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!