2016-04-25 77 views
0

找不到這個簡單問題的答案。默認情況下(函數實例).prototype字段指向哪裏?

var fun1 = function() {}; 

哪裏有fun1.prototype指向?請記住,我沒有設置fun1.prototype = someObject,也沒有設置someObject.constructor = fun1。那麼默認情況下,變量fun1.prototype指向哪裏?

---編輯1 ---

明白了:如果你創建新的功能fun1,Javascript實現將fun1.prototype下創建新對象{ constructor: fun1 }

我在想也許它是指向一些預定義的對象,如Object.prototype

+3

爲什麼你不檢查它在F12? – Redu

回答

1

它指向具有指向該函數的constructor屬性的對象。像

{ 
    constructor: fun1, 
} 
+0

但我沒有設置someObject.constructor = fun1也沒有fun1.prototype = someObject。我假設Javascript引擎會在fun1.prototype下創建一個新的空對象? –

+1

是的,所有這些都是由JavaScript本身在創建函數時完成的。你問了它的默認值是什麼,就是這樣。 –

+0

@ potato300:如果您不想使用默認的'.prototype'對象,則可以使用箭頭函數 – Bergi

相關問題