在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  Python  HTML/ 構造函數(shù)內(nèi)部返回自己的實例出現(xiàn)錯誤

構造函數(shù)內(nèi)部返回自己的實例出現(xiàn)錯誤

本人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() // 報錯

個人疑惑的地方在于, 為什么在一個構造函數(shù)里面返回自己的實例就會顯示棧溢出, 但是返回別的構造函數(shù)的實例卻沒有問題.

另外我的理解, 構造函數(shù)返回自己的實例是不是有點類似于遞歸所以就報錯了, 但是返回的是一個實例對象按理說應該是不會繼續(xù)進行自己的調(diào)用, 所以該如何理解? 一直想不明白.

希望有前輩能夠指點一下, 謝謝了!

回答
編輯回答
款爺

答案你已經(jīng)知道了,你不妨試試這個

let C = function(n) {
  console.log(n);
  return new C(n + 1);
}

let c = new C(0);

我覺得沒有什么奇怪的,當然你也可以特別規(guī)定:如果一個類的構造函數(shù)試圖使用new關鍵字實例化自己,那么就以空構造函數(shù)實例化它。

2017年5月15日 10:00