對(duì)象:
一個(gè)對(duì)象是一個(gè)包含相關(guān)資料和功能的集體 ?,通常由一些變量和函數(shù)組成 即對(duì)象的屬性和方法;
[]括號(hào)取值的方法法:
不僅可以動(dòng)態(tài)的去設(shè)置對(duì)象成員的值 還可以動(dòng)態(tài)設(shè)置成員的名字(括號(hào)里的可以是變量)
使用的是關(guān)聯(lián)值得名字 不是向數(shù)組一樣通過(guò)索引
對(duì)象也可以叫做關(guān)聯(lián)數(shù)組
對(duì)象做了字符串到值得映射
數(shù)組做了數(shù)字到值得映射
構(gòu)造函數(shù):
提供了創(chuàng)建你所需對(duì)象的有效方法? 將對(duì)象的數(shù)據(jù)和特征函數(shù)按需聯(lián)結(jié)致相應(yīng)的對(duì)象
用new關(guān)鍵字告訴瀏覽器 我們想要?jiǎng)?chuàng)建一個(gè)新的對(duì)象實(shí)例
原型:
每一個(gè)對(duì)象擁有一個(gè)原型對(duì)象? 對(duì)象以其原型為模板 ?從原型繼承方法和屬性
原型也可以擁有原型 并從中繼承方法和屬性 (原型鏈)
作用:解釋了一個(gè)對(duì)象會(huì)擁有定義在其他對(duì)象中的屬性和方法
準(zhǔn)確的說(shuō):這些屬性和方法定義在Object的構(gòu)造器函數(shù)之上? 而不是對(duì)象實(shí)例本身
傳統(tǒng)的面向?qū)ο螅?br>
先定義類? 此后創(chuàng)建的對(duì)象實(shí)例 類中定義的所有屬性和方法都被復(fù)制到實(shí)例中
javascript中:
在對(duì)象實(shí)例和它的構(gòu)造器之間建立一個(gè)連接(作為原型鏈中的一節(jié)) 以后通過(guò)
上溯原型鏈? 在構(gòu)造器中找到這些屬性和方法
原型鏈的運(yùn)作機(jī)制:
找對(duì)象上的方法的順序:先找構(gòu)造函數(shù)本身=>接著原型=>原型的原型...沒(méi)有找到為止;
但是并非原型上所有的屬性或方法都能被繼承?
繼承的屬性和方法都是定義在prototype之上的 ,是以O(shè)bject.prototype.開(kāi)頭的屬性和方法 并非Object.開(kāi)頭的屬性和方法 prototype屬性的值是一個(gè)對(duì)象 ,我們希望的其上面的屬性和方法都被下游的對(duì)象繼承
注意:prototype對(duì)象是一個(gè)內(nèi)部對(duì)象 這個(gè)對(duì)象里邊定義了需要被繼承的成員屬性或方法 ? 訪問(wèn)使用__proto__?