Pembolehubah Statik dalam JavaScript
Dalam pengaturcaraan berorientasikan objek, pembolehubah statik dikaitkan dengan kelas dan bukannya kejadiannya. Dalam JavaScript, yang mengikuti model pewarisan berasaskan prototaip, konsep pembolehubah statik boleh dicapai melalui pelbagai pendekatan.
Pendekatan Fungsi Pembina:
Sebelum pengenalan daripada kelas ES6, JavaScript menggunakan fungsi pembina untuk penciptaan objek. Dalam fungsi pembina, anda boleh menentukan pembolehubah persendirian yang hanya boleh diakses dalam skop fungsi tersebut. Pembolehubah dan kaedah awam, sebaliknya, boleh diberikan kepada objek ini contoh. Selain itu, anda boleh menambah sifat statik pada objek fungsi pembina itu sendiri, yang akan dikongsi oleh semua kejadian.
Pertimbangkan contoh berikut:
function MyClass() { var privateVariable = "foo"; this.publicVariable = "bar"; this.privilegedMethod = function() { alert(privateVariable); }; } // Instance method available to all instances (loaded once) MyClass.prototype.publicMethod = function() { alert(this.publicVariable); }; // Static property shared by all instances MyClass.staticProperty = "baz"; var myInstance = new MyClass();
Dalam contoh ini, staticProperty ditakrifkan dalam fungsi MyClass dan boleh diakses oleh semua kejadian MyClass.
Sintaks Kelas ES6 Pendekatan:
ES6 memperkenalkan kata kunci kelas untuk mengisytiharkan kelas. Dengan kelas, anda boleh menentukan sifat atau kaedah statik menggunakan kata kunci statik. Ahli statik ini boleh diakses melalui nama kelas itu sendiri.
Berikut ialah contoh sebelumnya yang dilaksanakan dengan kelas ES6:
class MyClass { constructor() { const privateVariable = "private value"; this.publicVariable = "public value"; this.privilegedMethod = function() { console.log(privateVariable); }; } publicMethod() { console.log(this.publicVariable); } static staticProperty = "static value"; static staticMethod() { console.log(this.staticProperty); } } var myInstance = new MyClass(); myInstance.publicMethod(); // "public value" myInstance.privilegedMethod(); // "private value" MyClass.staticMethod(); // "static value"
Kedua-dua pendekatan menyediakan cara untuk mencipta pembolehubah statik dalam JavaScript. Sintaks kelas ES6 menawarkan kaedah yang lebih bersih dan ringkas, manakala pendekatan fungsi pembina memberikan lebih fleksibiliti untuk mengakses pembolehubah persendirian dalam kaedah contoh.
Atas ialah kandungan terperinci Bagaimanakah Pembolehubah Statik Boleh Dilaksanakan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!