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...
其实不是鸡生蛋蛋生鸡的问题,所有的对象其实都是function,包括function自己;先说原型,原型基于构造函数和__proto__,并且这两个包含于prototype,并且这三个一起组成了一个function;原型链基于__proto__的指向,原型链是自底向上,就近原则,查找想要的属性,形成原型链;所以js是模拟的语言,这也是它和其他语言的本质区别!
可以通过new来产生对象(函数)跟所有的对象(函数)都需要通过new来产生是不一样的。
Function,Object等可以认为是js实现的过程中提供的,我的理解是浏览器为了实现原型链,在提供这些函数的时候按照原型链的实现给他们添加了
__proto__-->***.prototype
。就是js环境提供了几个特殊的对象(函数),然后为了不违背规范,对这些对象(函数)做了处理。第一条肯定是对的,第二条是我的理解。