【发布时间】:2012-04-23 11:54:59
【问题描述】:
我有这个 JavaScript:
var Type = function(name) {
this.name = name;
};
var t = new Type();
现在我想添加这个:
var wrap = function(cls) {
// ... wrap constructor of Type ...
this.extraField = 1;
};
所以我可以这样做:
wrap(Type);
var t = new Type();
assertEquals(1, t.extraField);
[编辑]我想要一个实例属性,而不是类(静态/共享)属性。
包装函数中执行的代码应该像我将其粘贴到真正的构造函数中一样工作。
Type 的类型不应改变。
【问题讨论】:
-
据我了解,您想在构造函数中添加一个附加属性吗?以便进一步的新实例具有该属性?
-
您可能只需要在
wrap()函数中更改Type的原型。例如:var wrap = function(cls) { cls.prototype.extraField=1; };?或者最好创建新的Type2继承自Type并添加额外的extraField成员? -
您能更详细地描述您的问题吗?
-
我想要一个实例属性,而不是类(静态/共享)属性。在包装函数中执行的代码应该像我将其粘贴到真正的构造函数中一样工作。
标签: javascript oop constructor