为什么我不能在函数中设置原型? 例如,为什么这不起作用?为什么我不能在函数中设置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