i was answering to a question where i encountered this problem在下面的代碼孩子的原型是如何被設置爲使用母公司的Object.create()method.I可以使用設置對象的原型使用的Object.create
child.prototype=new Parent();
做,但我想要做的它使用object.create
。採用child.prototype =的Object.create(父)沒有原型設爲父
function Parent() {
this.parentFunction = function(){
console.log('parentFunction');
}
}
Parent.prototype.constructor = Parent;
function Child() {
this.parentFunction = function() {
this.constructor.prototype.parentFunction.call(this);
console.log('parentFunction from child');
}
}
Child.prototype = Object.create(Parent);
Child.prototype.constructor = Child;
var child = new Child();
console.dir(child);
child.parentFunction();
'Object.create'創建具有給定原型的新對象。你已經有了一個對象,你只是想改變它的原型,所以Object.create似乎是用來改變原型的錯誤方法。 – adeneo 2015-01-15 16:25:18
'Child.prototype = Object.create(Parent.prototype);'。雖然這樣做沒有任何價值,因爲您沒有向「Parent.prototype」添加任何內容。還有其他的東西你錯過了。看看[繼承使用Object.create'的好處](http://stackoverflow.com/q/17392857/218196)。 – 2015-01-15 16:28:40
@FelixKling謝謝!!但可以請您詳細說明!我還沒有定義父母的原型。陳述似乎令人困惑 – 2015-01-15 16:31:03