我在控制台中玩耍,试图了解原型继承。我熟悉古典继承,但我从未在JS工作中使用任何继承。Javascript简单原型继承
如果我有:
var foo = {
cat: "oliver"
}
var bar = Object.create(foo);
foo.prototype = {
dog: "rover"
}
当我这样做:
dir(bar.dog)
或
dir(foo.dog)
我希望看到rover
但他们都回来为undefined
。
我错过了什么?
在此先感谢。
我想我困惑的地方是:在实例化对象(函数)和对象上的原型属性。创建是否能够将对象字面量用作原型?或者这种模式只适用于构造函数? –
您无法在对象实例上设置原型(如foo对象字面值),并希望它像在函数上设置原型那样工作。你所做的只是在foo上添加一个名为prototype的属性,但JS运行时不会用它来查找。大卫给出了最正确的答案。有关原型的更多信息:http://stackoverflow.com/a/16063711/1641941 – HMR