我听说过将一个函数或变量应用于多个对象的原型(prototype)方法。但不知何故它对我不起作用。我创建了许多类似这样的对象:
var item = {
a: {
aa: "lalala",
ab: 1,
something: 3
},
b: {
ba: "jfjb",
bb: 2,
something: 4
}
}
但是当我知道使用原型(prototype)方法
item.prototype.bob = 2;
它不起作用并显示错误
Cannot set property 'bob' of undefined"
方法相同
item.prototype.bob = function() {
100 - this.something;
this.something++;
}
你知道我做错了什么吗?或者是否有不同的方法将相同的变量或函数应用于多个对象?
最佳答案
您将类与对象实例混淆了。你只有一个匿名对象。 item
是实例,而不是类。
在下面的代码片段中,声明了一个类(Item
,大写 i),创建了一个实例 (item
),并创建了该类的原型(prototype)类被修改。然后您将看到,如果您愿意,可以在原型(prototype)上设置属性并通过实例读取它。
var Item = function() {
a = {
aa: "lalala",
ab: 1,
something: 3
};
b = {
ba: "jfjb",
bb: 2,
something: 4
};
}
var item = new Item();
Item.prototype.bob = 'x';
alert(item.bob);
关于JavaScript - 将一种方法应用于多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40197871/