为什么foo
没有在控制台中登录?我假设孩子会覆盖foo
基本方法。为什么不是这样的?
function parent(){ }
parent.prototype.foo = function(){
console.log('foobar');
};
function child(){ }
child.prototype.foo = function(){
console.log('foo');
};
child.prototype = Object.create(parent.prototype);
child.prototype.constructor = child;
console.log(new child().foo()); // foobar
答案 0 :(得分:1)
当你这样做时
child.prototype = Object.create(parent.prototype)
替换之前添加了foo
属性的对象。
只需更改顺序即可稍后设置foo
值:
function parent(){ }
parent.prototype.foo = function(){
console.log('foobar');
};
function child(){ }
child.prototype = Object.create(parent.prototype);
child.prototype.foo = function(){
console.log('foo');
};
child.prototype.constructor = child;
console.log(new child().foo()); // foo