通过Object.create()创建继承函数

时间:2016-11-12 00:25:51

标签: javascript node.js

假设我有这个功能

function test() {
    console.log('test');
}

test.property = 'testProperty';

我想通过执行

来扩展函数对象
var extend = Object.create(test);

嗯,函数的属性已正确传播

console.log(extend.property); // testProperty

但我不能扩展功能测试本身,也不能通过extend()

访问它
extend(); // TypeError: ext is not a function

好的,我可以使用修改后的__proto__

创建新功能
function extend() {
    console.log('extended!');
}

extend.__proto__ = test;

extend(); // extended!
console.log(extend.property); // testProperty

但是,根据Javascript MDN Documentation编辑__proto__属性是一个缓慢的操作。那么,有没有像Object.create()这样的函数可以用来实现这种操作呢?感谢。

0 个答案:

没有答案