在javascript中将对象添加到对象

时间:2013-07-13 06:20:23

标签: javascript object

我确定已在某处解释过,但我从未发现过这种情况,我在这里:

假设我有一个包含函数移动,攻击,防御的对象。如何将它们添加到单元对象,而不是一次添加一个,或添加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.

4 个答案:

答案 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)

看一下评论,你可以采取两种方式。

  1. 合并对象(抱歉在这里使用jQuery但克隆对象并不是那么容易并且需要大量代码)来合并可以使用的对象$.extend
  2. 如果您计划对象2扩展一个,请从对象继承,请参阅here
  3. 在对象中注入功能。目前没有示例代码。

答案 3 :(得分:0)

您必须循环遍历一个对象的每个属性,并将它们逐个复制到另一个对象上。