Object()-Konstruktor kann wie folgt gesehen werden: var Object=new Function();
Array()-Konstruktor kann wie folgt gesehen werden: var Array=new Function();
....Dann:
Function() Der Konstruktor kann gesehen werden als: var Function=new Function()?
Selbst erstellen?
Es gibt andere ?hnliche native Objekte, Object.prototype, als ultimatives Prototypobjekt der Prototypenkette. Wie wurde es erstellt? Wird es auch von new Object() erstellt? Aber sollte Object.prototype nicht das erste Objekt im nativen JS-System sein?
Ich habe das Gefühl, dass ich das prototypbasierte Denken von JS nicht mehr verstehen kann, bitte geben Sie mir einen Rat...
溫故而知新,可以為師矣。 博客:www.ouyangke.com
其實不是雞生蛋蛋生雞的問題,所有的對象其實都是function,包括function自己;先說原型,原型基于構造函數(shù)和__proto__,并且這兩個包含于prototype,并且這三個一起組成了一個function;原型鏈基于__proto__的指向,原型鏈是自底向上,就近原則,查找想要的屬性,形成原型鏈;所以js是模擬的語言,這也是它和其他語言的本質區(qū)別!
可以通過new來產(chǎn)生對象(函數(shù))跟所有的對象(函數(shù))都需要通過new來產(chǎn)生是不一樣的。
Function,Object等可以認為是js實現(xiàn)的過程中提供的,我的理解是瀏覽器為了實現(xiàn)原型鏈,在提供這些函數(shù)的時候按照原型鏈的實現(xiàn)給他們添加了__proto__-->***.prototype
。就是js環(huán)境提供了幾個特殊的對象(函數(shù)),然后為了不違背規(guī)范,對這些對象(函數(shù))做了處理。
第一條肯定是對的,第二條是我的理解。