2013-02-07 25 views
6

我想深入研究javascript的語言特定構造「原型」。 這裏是我的學習目的代碼:Firebug向構造函數顯示無限遞歸

var f = function() {}; 
f.ext = 1; 
f.prototype.pext = 2; 

當我和現在的Firebug調試代碼,我得到如下: enter image description here

哪裏這無限的嵌套從何而來? 讓我們從頂部開始(OK = unterstood):

F(OK)
- EXT(OK)
- 原型(OK)
- PEXT(OK)
- 構造函數(我被困在這一點)

誰的構造函數是?爲什麼我們有這種infinte嵌套?

+0

我認爲這是因爲匿名函數的原型是一個匿名函數。既然你在函數的原型上設置了一個屬性,它會在函數的原型上設置該屬性,該函數的原型是在函數的原型上設置一個屬性等等。不知道雖然:) – Flauwekeul

回答

5

它只是因爲f === f.prototype.constructor,那些是相同的,Firebug將它們顯示爲循環引用。

的一樣:

var a = {}, 
    b = a; 
a.b = b; 

你會看到這裏的無限太引用。