【问题标题】:How to create a static field in javascript class [duplicate]如何在javascript类中创建一个静态字段[重复]
【发布时间】:2012-11-26 04:26:50
【问题描述】:

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

【问题讨论】:

标签: javascript oop class static


【解决方案1】:

这不是那么容易回答的。它的行为不会像你从其他语言(如 Java 等)中知道的静态 var。

你可以做的就是将它附加到函数中,如下所示:

appender.staticProp = 3

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

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

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

Person.staticVar = 3;

所以它允许你附加一些静态的变量。但是你只能像上图那样引用它们。

【讨论】:

    【解决方案2】:

    查看 cmets:

    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
    

    【讨论】:

      猜你喜欢
      • 2014-03-19
      • 1970-01-01
      • 1970-01-01
      • 2015-02-19
      • 2015-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多