为什么我不能在函数内部设置原型(prototype)? 例如,为什么这不起作用?
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
我不喜欢在创建函数后分配原型(prototype)的语法。
最佳答案
this.prototype= barProto
不等同于
Foo.prototype= barProto
this
指的是将由 new Foo() 创建的特定对象
Foo 是构造函数。您在构造函数上设置原型(prototype),而不是在特定实例上。
更多关于原型(prototype)继承的信息在这里:Mozilla docs
关于javascript - 为什么我不能在函数内设置 JavaScript 原型(prototype)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14880140/