这是一个例子:
var Box = function() {
this.id = generateUniqueId();
};
Box.prototype = {
add:function(parent) {
parent.appendChild(this.elm);
}
};
var NewBox = function() {
this.newThing = true;
};
NewBox.prototype = new Box();
NewBox.prototype.remove = function() {
this.elm.parentNode.removeChild(this.elm);
};
var a = new NewBox();
var b = new NewBox();
alert(a.id); // alerts 0
alert(b.id); // also alerts 0! :@
我希望a和b(基本上每次创建
NewBox
时)都有自己的id
。我知道NewBox
正在使用原型继承,因此是从id
生成的Box
的单个实例继承,但是我希望每个NewBox
都拥有自己的id
必须在NewBox
构造函数中明确指出。也许这是不可能的,或者我做错了什么,所以请帮助!
非常感谢!
最佳答案
也许这是不可能的,或者我做错了什么,所以请帮助!
你做错了
如果需要特定于实例的值,请在构造函数而不是原型中初始化它们。
关于javascript - JavaScript原型(prototype)继承解决方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7682034/