Javascript: Keperluan "this.var" untuk Pembolehubah Objek
Dalam bahasa pengaturcaraan tertentu seperti C , mengisytiharkan pembolehubah objek menggunakan "ini ->pembolehubah" selalunya pilihan apabila pembolehubah berada dalam skop kelas. Walau bagaimanapun, dalam Javascript, menggunakan "this.var" untuk setiap pembolehubah dalam objek adalah penting.
Mengapa "this.var" Diperlukan
Javascript menggunakan unik model pewarisan prototaip dan bukannya sistem berasaskan kelas. Objek yang dicipta menggunakan kata kunci "baharu" mewarisi sifat dan kaedah daripada objek prototaipnya.
Apabila mentakrifkan kaedah dalam fungsi pembina objek, kata kunci "ini" merujuk kepada objek yang dibuat. Menetapkan sifat tanpa menggunakan "ini" mencipta pembolehubah setempat dalam kaedah, yang tidak boleh diakses di luar fungsi.
Contoh: Tanpa "this.var"
function Foo() { bar = 0; getBar = function() { return bar; } } const foo = new Foo(); console.log(foo.getBar()); // ReferenceError: bar is not defined
Contoh: Dengan "this.var"
function Foo() { this.bar = 0; this.getBar = function() { return this.bar; } } const foo = new Foo(); console.log(foo.getBar()); // 0
Pendekatan Alternatif: Penutupan
Untuk mencipta pembolehubah persendirian dalam objek, pembangun Javascript sering menggunakan pendekatan penutupan. Dengan mentakrifkan pembolehubah tempatan dalam fungsi pembina dan mengembalikan kaedah istimewa yang mengakses pembolehubah tersebut, adalah mungkin untuk mengekalkan atribut peribadi sambil mendedahkan kaedah awam.
Contoh: Menggunakan Penutupan
function Foo() { let bar = "foo"; this.getBar = function() { return bar; }; } const foo = new Foo(); console.log(foo.getBar()); // "foo"
Kesimpulan
Semasa penggunaan "this.var" mungkin kelihatan bertele-tele, ia adalah penting dalam Javascript untuk memastikan pembolehubah objek boleh diakses dalam kaedah dan mengekalkan perbezaan antara pembolehubah peringkat tempatan dan peringkat objek. Sebagai alternatif, menggunakan penutupan menyediakan cara untuk mencipta pembolehubah peribadi dalam objek, meningkatkan pengkapsulan dan keselamatan data.
Atas ialah kandungan terperinci Mengapakah `this.var` Diperlukan untuk Pembolehubah Objek dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!