0

我可以像这样在 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?
4

2 回答 2

6

这不是那么容易回答的。它不会像您从其他语言(如 Java 等)中知道的静态变量那样表现。

您可以做的是将其附加到函数中,如下所示:

appender.staticProp = 3

这意味着在函数中,您必须使用函数名称来引用它:

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

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

Person.staticVar = 3;

因此,它允许您附加一些静态的变量。但是您只能如上所示引用它们。

于 2012-12-07T23:12:35.693 回答
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
于 2012-12-07T23:13:30.150 回答