如何在javascript类中创建一个静态字段[重复]

Posted

技术标签:

【中文标题】如何在javascript类中创建一个静态字段[重复]【英文标题】:How to create a static field in javascript class [duplicate] 【发布时间】: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?

【问题讨论】:

你可以看看这个帖子:[***.com/questions/1535631/…(***.com/questions/1535...)appender.staticProp = x ;会解决你的问题。 Static variables in JavaScript 【参考方案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

【讨论】:

以上是关于如何在javascript类中创建一个静态字段[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ES6 类中创建“公共静态字段”?

如何在 Java 静态块中创建本地类? [复制]

如何在 Google App Engine expando 类中创建动态字段?

求类中创建对象的个数

如何在 HTML/Javascript 中创建可编辑的组合框?

在javascript对象中创建“静态”成员[重复]