84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
Das Obige ist mein Test im Browser. Ich kann diese Prototypenkette überhaupt nicht verstehen. Wer kann helfen, es zu erklären
Object 是一个函数,不要被它的名字误导了,所以先脑中补完这个形式
function Object () { ... }
任何函数(构造函数)都有原型,也就是prototype,prototype没什么特别的,就是一个对象。
Object.prototype 输出 “Object { ... }", 不要被这个输出误导,以为Object.prototype是它自己。输出里的“Object”只是说Object.prototype的值“是一个”Object“类型”的对象。
但同时因为JS里function本身也是对象,所以Object除了是函数,也是对象。所有的对象都是根据某个原型“构造”(初始化)而来的.
Object作为对象是什么时候构造的?
答:当它被定义的时候,也就是:
function Object() { ... }
这时JS运行时就依据 function () { [Native code] } 为原型构造了Object这个函数“对象”(实例)。
这个 function () { [Native code] } 是什么?它是JS里所有函数的祖宗。
Object.__proto__.__proto__ 即这个祖宗函数的原型,既然是祖宗怎么会有原型?记住它是函数的祖宗,但它不是“对象”的祖宗,对象的祖宗,就是这个 “Object {__defineGetter__: ...}" 。
你又问,既然对象都是构造而来的,那祖宗对象也应该是构造而来的吧?祖宗对象是万物起源,它是JS的语言设计者定义的,是概念体系的出发点。
可是我看到
Object.prototype.constructor function Object() { [native code] }
祖宗对象不明明是构造而来的?而且是由Object构造而来的?
这只不过是JS的语言设计者为了概念一致,把祖宗对象的constructor指向了Object而已。
祖宗对象之前是什么呢?
Object.prototype.__proto__ null
道生一,一生二。道是无。
itlr.cc
Object 是一个函数,不要被它的名字误导了,所以先脑中补完这个形式
任何函数(构造函数)都有原型,也就是prototype,prototype没什么特别的,就是一个对象。
Object.prototype 输出 “Object { ... }", 不要被这个输出误导,以为Object.prototype是它自己。输出里的“Object”只是说Object.prototype的值“是一个”Object“类型”的对象。
但同时因为JS里function本身也是对象,所以Object除了是函数,也是对象。所有的对象都是根据某个原型“构造”(初始化)而来的.
Object作为对象是什么时候构造的?
答:当它被定义的时候,也就是:
这时JS运行时就依据 function () { [Native code] } 为原型构造了Object这个函数“对象”(实例)。
这个 function () { [Native code] } 是什么?它是JS里所有函数的祖宗。
Object.__proto__.__proto__ 即这个祖宗函数的原型,既然是祖宗怎么会有原型?记住它是函数的祖宗,但它不是“对象”的祖宗,对象的祖宗,就是这个 “Object {__defineGetter__: ...}" 。
你又问,既然对象都是构造而来的,那祖宗对象也应该是构造而来的吧?祖宗对象是万物起源,它是JS的语言设计者定义的,是概念体系的出发点。
可是我看到
祖宗对象不明明是构造而来的?而且是由Object构造而来的?
这只不过是JS的语言设计者为了概念一致,把祖宗对象的constructor指向了Object而已。
祖宗对象之前是什么呢?
道生一,一生二。
道是无。
itlr.cc