假设我有这个功能
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()
这样的函数可以用来实现这种操作呢?感谢。