让我说我有100个物体
var a={name:'a'};
var b={name:'b'};
...
...
var xyz={name:'xyz'};
现在,我想向所有这些对象添加一个方法,该方法将对所有对象执行类似的操作,比方说显示属性“名称”。如何为所有这些对象的Object.prototype添加方法。
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以像这样为一组对象创建一个“模板”:
function myObj() {
this.name = arguments[0];
};
在“模板”(myObj
)上方的代码中,只是一个JavaScript N function的JavaScript arguments(可以实现其他替代方法)。
现在,为了创建使用此“模板”的对象,您只需要像这样实例化它们:
var a = new myObj('a');
请参见下面的示例。
function myObj() {
this.name = arguments[0];
};
var a = new myObj('a');
var b = new myObj('b');
var xyz = new myObj('xyz');
console.log(a.name);
console.log(b.name);
console.log(xyz.name);
答案 2 :(得分:0)
使用Object.create(),您可以创建自己的“原型”,然后使用它来创建所有对象。
let myProto = {
func() {
return this.name;
}
}
let a = Object.create(myProto);
a.name = 'a';
// or using Object.assign()
let b = Object.assign({name: 'b'}, myProto);
// Object.create assigns to __proto__
console.log(a.__proto__);
// Object.assign doesn't, it assigns as a member function
console.log(b.__proto__);
console.log(b.func);
console.log(a.func())
console.log(b.func())