javascript - JS中的Function()函數對象
欧阳克
欧阳克 2017-06-12 09:29:33
0
3
803

Object()建構子可以看做是:var Object=new Function();
Array()建構子可以看做是:var Array=new Function();
.....那麼:
Function()建構子可以看做是:var Function=new Function()?
自己創建了自己?
還有類似的其他的一些原生對象,Object.prototype,作為原型鏈的終極原型對象,他是怎麼被創造出來的?難道也是new Object()創造出來的?但Object.prototype不應該是JS原生系統裡第一個物件嗎?
感覺已經無法理解JS的基於原型思想了,還請大神指點.......

欧阳克
欧阳克

温故而知新,可以为师矣。 博客:www.ouyangke.com

全部回覆(3)
学习ing

其實不是雞生蛋蛋生雞的問題,所有的對像其實都是function,包括function自己;先說原型,原型基於構造函數和__proto__,並且這兩個包含於prototype,並且這三個一起組成了一個function;原型鏈基於__proto__的指向,原型鍊是自底向上,就近原則,查找想要的屬性,形成原型鏈;所以js是模擬的語言,這也是它和其他語言的本質區別!

我想大声告诉你
  1. 可以透過new來產生物件(函數)跟所有的物件(函數)都需要透過new來產生是不一樣的。

  2. Function,Object等可以認為是js實現的過程中提供的,我的理解是瀏覽器為了實現原型鏈,在提供這些函數的時候按照原型鏈的實現給他們添加了__proto__-->** *.prototype。就是js環境提供了幾個特殊的物件(函數),然後為了不違反規範,對這些物件(函數)做了處理。

第一條肯定是對的,第二條是我的理解。

伊谢尔伦

雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板