【发布时间】:2014-06-05 18:50:24
【问题描述】:
--
你好,
希望对 .prototype 的问题有一些小的指导。
我已经浏览了 SO 中的所有答案,但他们似乎没有涵盖这个特定问题,或者他们可能涵盖了,但我没有那样理解。
手头的问题(和代码)
function foo(){};
foo.prototype.type = 'foo';
function bar()
{
this.prototype = foo.prototype;
}
test = new bar();
console.log(test.type); // type is undefined
问题
据我了解,对type 的请求必须向上级联原型链,直到找到foo 原型,这并没有发生,显然我理解错了 - 为什么类型未定义?
我基本上是想找到一种方法来扩展函数对象,以便
new foo() - 返回一个 foo 对象new bar() - 返回一个包含 foo 的所有方法和属性的 bar 对象。
感谢我能获得的任何帮助或参考!
【问题讨论】:
-
按照兰特所说的,我想我明白了。 .prototype 属性实际上只是一个具有某些属性的对象。如果当前对象中缺少某个属性,则它会沿链上升,依此类推。听起来对吗?
-
是的。强调“链”不是在其上查找属性的对象的
.prototype属性。
标签: javascript