0

我确定这已在某处进行了解释,但我从未找到它,我开始:

假设我有一个包含移动、攻击、防御功能的对象。如何将它们添加到单元对象中,而不是一次添加一个,或者添加一个子对象:units.commands = 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

4 回答 4

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);
}
于 2013-07-13T06:27:18.807 回答
1

您正在寻找的是如何在另一个对象上继承一个对象的属性。这不是通过简单地将一个对象的指针覆盖到另一个对象来完成的。我认为这个页面可以帮助你。

于 2013-07-13T06:27:03.927 回答
1

查看评论,您可以采取多种方式。

  1. 合并对象(抱歉在这里使用 jQuery,但克隆对象并不容易,需要大量代码)以合并您可以使用的对象$.extend
  2. 如果您计划将对象二扩展为一个对象,请从对象继承,请参见此处
  3. 在对象中注入功能。目前没有示例代码。
于 2013-07-13T06:36:49.460 回答
0

您必须遍历一个对象的每个属性并将它们一个接一个地复制到另一个对象上。

于 2013-07-13T06:23:10.920 回答