在物件導向的程式語言(如Java)中,靜態變數通常用於聲明屬於某個類別並由所有類共享的成員該類別的實例。本文探討如何在 JavaScript 中實作這個概念。
在遵循基於原型的繼承模型的 JavaScript 中,函數充當建構子。靜態屬性可以在建構函數本身中定義,因為它們與函數物件關聯。
function MyClass() { // Private variable var privateVariable = "foo"; // Public variable this.publicVariable = "bar"; // Public method this.privilegedMethod = function() { alert(privateVariable); }; } // Static variable shared by all instances MyClass.staticProperty = "baz";
在此範例中,staticProperty 在 MyClass 函數中定義,並且可以在類別的所有實例中存取。
ES6 引入了 class 關鍵字來聲明類,為基於原型的繼承提供了語法糖。靜態屬性和方法可以使用 static 關鍵字定義。
class MyClass { constructor() { // Private variable const privateVariable = 'private value'; // Public property this.publicVariable = 'public value'; // Public method with access to private variable this.privilegedMethod = function() { console.log(privateVariable); }; } // Prototype methods publicMethod() { console.log(this.publicVariable); } // Static property shared by all instances static staticProperty = 'static value'; // Static method static staticMethod() { console.log(this.staticProperty); } }
這裡,staticProperty 和 staticMethod 被定義為 MyClass 類別的靜態成員,無需建立實例即可存取它們。
以上是JavaScript 中如何宣告和使用靜態變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!