【发布时间】:2014-04-17 23:35:07
【问题描述】:
我正在学习 Javascript 中的原型继承,据我了解,我正在尝试使用它将进程发送到无限递归链接中。
我对原型继承的想法是一个对象(它是一个函数)拥有原型链接。该对象的任何实例都指向它。所以如果我说 instance.someproperty 它会查看父对象的原型链。
假设这个,如果我只是将函数原型列表指向它自己,当对象试图访问某个属性时它应该进入无限循环。
var p = function(){};
p.prototype = p;
// I also tried p.prototype = new p();
var q = new p();
// and now when I say q.something, it should never be able to find it.
我想知道为什么这不起作用以及如何让它进入无限循环。
【问题讨论】:
-
原型函数本身与属性查找无关。
-
用于学习目的?你在生活中所做的一切对你有用吗?
-
@jfriend 不做黑客也没关系。但我不会因为有这种倾向而抨击人们。
-
@jfriend00 - 通过“黑客”,我将继续更经典的定义,即对事物采取斧头以了解其工作方式的人。 Prototype 更像是一种代理查找机制,而不是真正的继承机制。当它出现时,理解它在我的日常使用/实施中发挥了关键作用。这不是要破坏东西,而是要理解为什么它不会破坏。
-
我想他问了你为什么要让鸡过马路,而真正的问题是“天哪!它是怎么跑到另一边的?”
标签: javascript prototypal-inheritance