JS原型對(duì)象通俗"唱法"
1.關(guān)于原型對(duì)象的重要知識(shí)點(diǎn)
首先要知道一個(gè)很重要的知識(shí)點(diǎn),一句話:所有對(duì)象都有原型對(duì)象.
2. 對(duì)比其他語言的理解
原型對(duì)象,就是其它語言中的類中的靜態(tài)屬性和靜態(tài)方法,總是是靜態(tài)-static就對(duì)了.原理是: 內(nèi)存中只有一份.
3. 在內(nèi)存中的形象圖:
首先,在產(chǎn)生js對(duì)象之前,我們需要?jiǎng)?chuàng)造一個(gè)構(gòu)造函數(shù)(這都不知道,那就不要往下看了),如下:
function Person(name_, age_) {
this.name = name_;
this.age = age_;
}
下面,我們就要new 對(duì)象了,這里,我們new三個(gè)(Person)對(duì)象,"張三" "李雷" "韓梅梅",他們來自同一個(gè)構(gòu)造函數(shù)Person:
內(nèi)存中就這樣了,每個(gè)對(duì)象,都有自己的 name, age 內(nèi)存.這里new了多少個(gè)對(duì)象,就要開辟多少塊name, age內(nèi)存.
看到這,應(yīng)該還是比較好理解的. 下面我們添加一條屬性.location屬性,如下:
function Person(name_, age_) {
this.name = name_;
this.age = age_;
this.location = "地球";
}
這時(shí)候 我們?cè)趎ew這三個(gè)人. 內(nèi)存情況如下:
這里我們看,三個(gè)對(duì)象都有一個(gè)"地球"的內(nèi)存空間. 這里你要?jiǎng)觿?dòng)大腦了, 三個(gè)人都有地球的內(nèi)存,我們是不是可以這樣呢?
你看這樣好不好呢? 這樣只需要一個(gè)地球,大家都可以用了. 看到這,好吧,公用的那個(gè)空間如果是個(gè)對(duì)象的話,就是所謂的原型對(duì)象了.餓?就這樣?
是的,就這樣.
4. 從代碼的層次上介紹原型對(duì)象.
上圖是內(nèi)存中的對(duì)象,我們現(xiàn)在從代碼的從面操作.
[code]
function Person(name_, age_) {
this.name = name_;
this.age = age_;
this.location = "地球";
}
相關(guān)文章
簡(jiǎn)單實(shí)現(xiàn)JavaScript彈幕效果
這篇文章主要幫助大家簡(jiǎn)單實(shí)現(xiàn)JavaScript彈幕效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05基于JavaScript實(shí)現(xiàn)簡(jiǎn)單抽獎(jiǎng)功能代碼實(shí)例
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)簡(jiǎn)單抽獎(jiǎng)功能代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10js實(shí)現(xiàn)幻燈片效果(基于jquery插件)
說起幻燈片效果,想必大家都不陌生吧,接下來為大家介紹下使用jquery插件jquery.smallslider.js實(shí)現(xiàn)幻燈片效果示例代碼,喜歡的朋友可以學(xué)習(xí)下2013-11-11微信小程序 子級(jí)頁面返回父級(jí)并把子級(jí)參數(shù)帶回父級(jí)實(shí)現(xiàn)方法
這篇文章主要介紹了微信小程序 子級(jí)頁面返回父級(jí)并把子級(jí)參數(shù)帶回父級(jí)實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08js事件監(jiān)聽機(jī)制(事件捕獲)總結(jié)
添加事件的js方法也很多,有直接加到頁面結(jié)構(gòu)上的,有使用一些js事件監(jiān)聽的方法,由于各個(gè)瀏覽器對(duì)事件冒泡事件監(jiān)聽的機(jī)制不同2014-08-08