如何在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类中创建一个静态字段[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Google App Engine expando 类中创建动态字段?