爲什麼我不能在函數中設置原型? 例如,爲什麼這不起作用?爲什麼我不能在函數中設置JavaScript原型?
var Bar = function(){
this.name='Bar'
}
var barProto = new Bar()
var Foo = function(){
this.prototype= barProto
}
var foo = new Foo()
console.log(foo.name) // undefined
但這並工作:
var Bar = function(){
this.name='Bar'
}
var barProto = new Bar()
var Foo = function(){
}
Foo.prototype= barProto
var foo = new Foo()
console.log(foo.name) // Bar
我不喜歡我所創建的功能分配後原型的語法。
我八九不離十讓你在說什麼。但是我不希望創建的新對象具有原型barProto,對嗎?原型僅在使用「新」時才被設置?爲什麼我無法隨時設置任何對象的原型屬性? – Eddie 2013-02-14 17:13:16
我在說的和ben336完全一樣。 「爲什麼我無法隨時設置任何物體的原型屬性?」 - 這就是語言的工作原理......也許你更喜歡'var foo = Object.create(barProto)'?這也起作用,並且不需要'Foo'構造函數或'new'關鍵字。 – bfavaretto 2013-02-14 17:19:53