Akses Pembolehubah Objek dalam JavaScript: this.var or Not?
Dalam model pengaturcaraan berorientasikan objek JavaScript, adalah perkara biasa untuk tertanya-tanya sama ada setiap pembolehubah dalam objek memerlukan kata kunci ini.
this.var vs. Local Pembolehubah
Tidak seperti model berasaskan kelas C, JavaScript menggunakan pewarisan prototaip. Dalam pewarisan prototaip, semuanya ialah objek dan objek boleh diwarisi daripada objek lain.
Dalam JavaScript, fungsi pembina, yang digunakan dengan kata kunci baharu, mencipta objek baharu dan memberikan sifat kepada mereka. Kata kunci ini dalam pembina merujuk kepada objek yang baru dibuat.
Kaedah, boleh diakses melalui kata kunci ini, ialah fungsi yang dipanggil pada objek. Walau bagaimanapun, pembolehubah tempatan yang diisytiharkan dalam skop kaedah tidak boleh diakses secara langsung oleh ini.
Contoh:
function Foo() { this.bar = 0; this.getBar = function() { return this.bar; }; }
Dalam contoh ini, this.bar merujuk kepada bar harta contoh Foo. Walau bagaimanapun, bar di dalam kaedah getBar merujuk kepada pembolehubah tempatan yang tidak ditentukan secara lalai. Untuk mengakses harta tersebut, anda perlu menggunakan bar ini.
Atribut Peribadi melalui Penutupan
Untuk mencipta atribut peribadi, JavaScript bergantung pada penutupan. Fungsi yang ditakrifkan dalam skop pembina mempunyai akses kepada pembolehubah tempatan pembina tersebut. Oleh itu, dengan mencipta fungsi dalam pembina dan mendedahkannya sebagai kaedah istimewa, anda boleh mengekalkan atribut peribadi.
Contoh:
function Foo() { var bar = "foo"; this.getBar = function() { return bar; }; }
Dalam contoh ini, bar ialah pembolehubah tempatan bagi pembina Foo. Kaedah getBar ialah kaedah keistimewaan yang mempunyai akses kepada bar.
Kaedah Prototaip dan Kaedah Keistimewaan
Kaedah yang ditakrifkan pada objek prototaip diwarisi oleh semua kejadian. Walau bagaimanapun, mereka tidak mempunyai akses kepada kaedah istimewa melainkan prototaip anak mewarisi daripada prototaip induk.
Ringkasnya, walaupun this.var diperlukan untuk mengakses sifat objek dari dalam kaedah, ia tidak penting untuk pembolehubah tempatan . Kaedah istimewa, ditakrifkan sebagai penutupan dalam pembina, menyediakan mekanisme untuk mencipta atribut peribadi dalam model pengaturcaraan berorientasikan objek JavaScript.
Atas ialah kandungan terperinci Bilakah Saya Harus Menggunakan `this.var` untuk Mengakses Pembolehubah dalam Objek JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!