本人javascript新手, 最近遇到了一个问题一直无法理解, 如下:
var A = function() {
return new B()
}
var B = function() {
this.name = 'B'
}
var a = A()
console.log(Object.getPrototypeOf(a) == B.prototype) // true
var C = function() {
return new C()
}
var c = C() // 报错
个人疑惑的地方在于, 为什么在一个构造函数里面返回自己的实例就会显示栈溢出, 但是返回别的构造函数的实例却没有问题.
另外我的理解, 构造函数返回自己的实例是不是有点类似于递归所以就报错了, 但是返回的是一个实例对象按理说应该是不会继续进行自己的调用, 所以该如何理解? 一直想不明白.
希望有前辈能够指点一下, 谢谢了!
慕标5832272
相关分类