问题1 :
我正在尝试JS中的对象和构造函数的原型,当我注意到:
function f(a) {
this.a = a;
this.x = 1
}
function f2(a) {
this.a = a;
this.x = 4
}
f2.__proto__ = f(9);
var of2 = new f2(4);
以某种方式使f2()嵌套在prototype -> constructor
中,所以我有无限的嵌套(如下所示):
请问有人解释这种行为吗?或者这只是一个错误,这是由工具引起的?
问题2 : 所以,如果这是正常的,那么它在内存中是如何工作的?它是在处理引用,还是只是将原型插入构造函数,构造函数来构建原型等等?如果第二个假设是真的,为什么我的计算机内存仍然没有燃烧?
答案 0 :(得分:1)
这是正常行为。类似的东西:
function f() {
this.a=0;
}
var obj= new f();
导致相同的循环:obj
的构造函数是f()
,并且此构造函数的原型具有f()
作为构造函数,并且其原型具有f()as ... < / p>
答案 1 :(得分:1)
与
相同的无限嵌套look to the right -> <- look to the left
所以实际上它非常有限;)
prototype -> <- constructor
(提示:这个答案最适合300px的智能手机......;))