2012-12-07 51 views
1

我可以在JavaScript中這樣定義一個類來創建一個靜態字段:如何在JavaScript類

var appender = function (elements, func) { 
    this.Prop = something; 
    staticProp = something_else; 
}; 

我說得對不對?那麼,我該如何在這個類中創建一個靜態字段?我怎樣才能在課堂上訪問該字段?我的意思是我想要一個在該類的所有實例之間共享的字段。

var ap1 = new appender(); 
var ap2 = new appender(); 
ap1.Prop = something1; 
ap2.Prop = something2; 
var t = ap1.Prop == ap2.Prop; // true 
ap1.staticProp = something_static; 
var s = ap2.staticProp = something_static; // I want to this returns true. how can I? 
+0

你可以看看這篇文章: [http://stackoverflow.com/questions/1535631/static-variables在-javascript](http://stackoverflow.com/questions/1535 ...) 'appender.staticProp = x;'將解決您的問題。 –

+0

[JavaScript中的靜態變量](http://stackoverflow.com/questions/1535631/static-variables-in-javascript) –

回答

6

這並不容易回答。它不會表現得像你從其他語言如Java等知道一個靜止無功

你可以做的是將其附加的功能,像這樣:

appender.staticProp = 3 

這意味着,在函數內部您在使用功能名稱來引用它:

var Person = function(name) { 
    this.name = name; 

    this.say = function() { 
     console.log(Person.staticVar); 
    } 
} 

Person.staticVar = 3; 

所以它可以讓你添加是有點靜態變量。但是你只能如上所示引用它們。

+0

+1並接受感謝幫助 –

1

查看評論:

var appender = function (elements, func) { 
    this.Prop = something; // member variable, ok 
    staticProp = something_else; // global var (no var keyword!) 
}; 

試試這個:

var appender = function (elements, func) { 
    this.Prop = something; 

}; 
appender.staticProp = something_else; // static member 
+0

+1感謝幫助 –