我确定已在某处解释过,但我从未发现过这种情况,我在这里:
假设我有一个包含函数移动,攻击,防御的对象。如何将它们添加到单元对象,而不是一次添加一个,或添加sub.object:units.commands =命令,而不是:units = commands OR units.prototype = commands。
另一个简单的例子:
var one = function () {
this.a = 1;
};
var two = function () {
this.z = 1;
};
var jee = new one(),
jee2 = new two();
jee = jee2;
console.log(jee); // Should have z AND a.
答案 0 :(得分:3)
你可以创建另一个函数three
,它接受来自其他两个的值,如:
var Three = function(){
one.call(this);
two.call(this);
}
var three = new Three; //=> Three{a:1, z:1}
使用underscore
,您甚至可以将函数组合成一个完整的函数:
var Three = function(){
_.compose(one, two).call(this);
}
答案 1 :(得分:1)
您要搜索的是如何继承另一个对象的属性。这不是通过简单地将一个对象的指针覆盖到另一个对象来完成的。我认为this page可以帮到你。
答案 2 :(得分:1)
看一下评论,你可以采取两种方式。
$.extend
答案 3 :(得分:0)
您必须循环遍历一个对象的每个属性,并将它们逐个复制到另一个对象上。