全局對(duì)象
ECMAScript 規(guī)定全局對(duì)象叫做 global堡掏,但是瀏覽器把 window 作為全局對(duì)象(瀏覽器先存在的)
window 就是一個(gè)哈希表昭雌,有很多屬性图毕。
window 的屬性就是全局變量盹舞。
在瀏覽器下, window 的屬性可以分為兩類(lèi):
- ECMAScript 規(guī)定的倡蝙,例如 parseInt() 九串,parseFloat() ,Number() 寺鸥,String()猪钮,Boolean(), setTimeout() 等等
- 瀏覽器私有屬性胆建,例如 alert 彈框提示 烤低, propmt 用戶(hù)填寫(xiě) , confirm 確認(rèn)眼坏, console 等拂玻,document 也是酸些。 DOM也有標(biāo)準(zhǔn)宰译,由 W3C 制定。
公用的屬性(就是原型魄懂,prototype)
1.避免浪費(fèi)內(nèi)存
2.當(dāng)聲明一個(gè)對(duì)象時(shí)沿侈,生成一個(gè)隱藏的key proto ,其 value 指向公用屬性市栗。
所有對(duì)象都有 toString 和 valueOf 屬性缀拭,那么我們是否有必要給每個(gè)對(duì)象一個(gè) toString 和 valueOf 呢卦洽?明顯不需要些侍。
JS 的做法是把 toString 和 valueOf 放在一個(gè)對(duì)象里(暫且叫做公用屬性組成的對(duì)象),然后讓每一個(gè)對(duì)象的 proto 存儲(chǔ)這個(gè)「公用屬性組成的對(duì)象」的地址造挽。
重要公式
請(qǐng)記住并瘋狂思考下面這張圖
原型鏈
每一個(gè)對(duì)象都有自己的原型對(duì)象篡腌,原型對(duì)象本身也是對(duì)象褐荷,原型對(duì)象也有自己的原型對(duì)象,這樣就形成了一個(gè)鏈?zhǔn)浇Y(jié)構(gòu)嘹悼,叫做原型鏈叛甫。