如何在javascript类中创建静态字段

age*_*t47 0 javascript oop static class

我可以在JavaScript中定义一个类,如下所示:

var appender = function (elements, func) {
    this.Prop = something;
    staticProp = something_else;
};
Run Code Online (Sandbox Code Playgroud)

我对吗?那么,我怎样才能在这个类中创建静态字段?如何在课堂上访问该字段?我的意思是我想要一个在类的所有实例之间共享的字段.

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?
Run Code Online (Sandbox Code Playgroud)

Mat*_*ias 6

这没有那么容易回答.它不会像你从Java等其他语言中知道的静态var那样表现.

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

appender.staticProp = 3
Run Code Online (Sandbox Code Playgroud)

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

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

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

Person.staticVar = 3;
Run Code Online (Sandbox Code Playgroud)

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