0

我正在尝试在 JavaScript 中做一些继承

ETC

var operation = 
{
   A: 1,
   B: 2,
   C: 3
};

var operationImplA = 
{
   D: 4
};

var operationImplB = 
{
   D: function (event) {
         //do something
      }
};

类似于上面的东西,但不确定如何在 JavaScript 中执行此操作。

4

2 回答 2

2

您可以简单地使用Object.create

var operation = 
{
   A: 1,
   B: 2,
   C: 3
};

var operationImplA = Object.create(operation, {
    D: {
       value: 4
    }
});

var operationImplB = Object.create(operationImplA, {
    D: {
        value: 5
    }
});

Object.create将使用原型创建新对象,它的第一个参数和第二个参数中定义的属性。

这是 JavaScript 中基于原型的自然继承。

编辑

如果要添加方法,请将其添加为属性,即:

var operationImplA = Object.create(operation, {
    M: {
        value: function (a) {
            console.log(a);
        }
    }
});
operationImplA.M('Some text...'); //'Some text...'
于 2013-02-13T15:50:36.150 回答
-1

我个人非常喜欢 John Resigs Simple JavaScript Inheritance。我将它用于我所有的 JS 项目。你应该试试看。

于 2013-02-13T15:51:08.917 回答