使用命名空间和对象时遇到问题。我是新手,所以真的很困惑。 我希望数组中的一个对象继承父对象方法。
这是我的代码:
var obj = {
arr1:['one', 'two'],
arr2:[],
init:function() {
for(var x=0; x<this.arr1.length; x++) {
this.arr2.push(new this.myfunc1(x, this.arr1[x]));
}
this.arr2[0].myfunc2();
},
myfunc1:function(x, name) {
this.index = x;
this.name = name;
},
myfunc2:function() {
alert(this.index + ' ' + this.name);
}
};
obj.init();
如何为我的arr2对象继承myfunc2?这是原型使用的吗?
返回“Uncaught TypeError:Object [object Object]没有方法'myfunc2'”
答案 0 :(得分:0)
正如我所见,你想拥有&#34; obj&#34;在您正在创建的对象中
this.arr2.push(new this.myfunc1(x, this.arr1[x]));
很简单,这些对象的构造函数是this.myfunct1(),所以你必须在构造函数的prototype属性中分配原型对象:
this.myfunct1.prototype = this;
for(var x=0; x<this.arr1.length; x++) {
this.arr2.push(new this.myfunc1(x, this.arr1[x]));
}
// WORKS!!!
this.arr2[0].myfunc2();
然后&#34;这个&#34; (obj)是创建对象的原型