最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript 將共享屬性遷移到原型中去的實現(xiàn)方法

 更新時間:2016年08月31日 08:54:40   投稿:jingxian  
下面小編就為大家?guī)硪黄猨avascript 將共享屬性遷移到原型中去的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

當我們用一個構(gòu)造函數(shù)創(chuàng)建對象時,其屬性就會被添加到this中去。并且被添加到this中的屬性實際上不會隨著實體發(fā)生改變,這時,我們這種做法顯得會很沒有效率。例如:

function her(){
  this.name = 'Anna';
}

這意味著每次我們new her()創(chuàng)建一個實例對象的時候都會生成一個全新的name屬性,并在內(nèi)存中擁有屬于該屬性自己的存儲空間。而事實上,我們可以將name屬性添加到原型上去,這樣一來所有實例都可以共享這個name屬性了:

function her(){}
her.prototype.name = 'Anna';

這樣一來,我們再用new her()創(chuàng)建對象的時候,name屬性就不再是新對象的私有屬性了,而是被添加到該對象的原型中去了。雖然這種做法會很有效率,但這也是針對實例對象中的不可變屬性而言的,這是一定的不然的話改一下這個屬性,所有被創(chuàng)建的新對象的這個屬性都會被改變,這可不是我們想要的啊~~~。對象的公有屬性尤其適合這種方法。

下面,我們來改進以前的一個例子:

function her(){};
her.prototype.name = 'Anna';
her.prototype.toString = function(){
  return this.name;
}

function his(){};
his.prototype = new her();
his.prototype.constructor = his;
his.prototype.sex = 'women';

如您所見,通常我們在進行原型對象擴展之前,我們現(xiàn)完成了相關(guān)繼承工作的構(gòu)建,否則his.prototype中后續(xù)新的屬性方法有可能會抹掉繼承來的東西。

function child(f, m){
  this.eat = f;
  this.don = m;
}
child.prototype = new his();
child.prototype.constructor = child;
child.prototype.name = 'Jok';
child.prototype.fun = function(){
  return this.eat + this.don
}

如您所見,實際上調(diào)用toString()這個方法的區(qū)別僅僅在于幕后的少量操作。主要區(qū)別也就是屬性,方法的查找工作將更多地發(fā)生在her.prototype中。

以上這篇javascript 將共享屬性遷移到原型中去的實現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • p5.js入門教程之平滑過渡(Easing)

    p5.js入門教程之平滑過渡(Easing)

    本篇文章主要介紹了p5.js入門教程之平滑過渡(Easing),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 移動前端圖片壓縮上傳的實例

    移動前端圖片壓縮上傳的實例

    下面小編就為大家分享一篇移動前端圖片壓縮上傳的實例。具有很好的參考價值,希望對大家有所幫助。一起小編過來看看吧
    2017-12-12
  • Openlayers實現(xiàn)測量功能

    Openlayers實現(xiàn)測量功能

    這篇文章主要為大家詳細介紹了Openlayers實現(xiàn)測量功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • ?javascript數(shù)組中的slice方法和join??方法

    ?javascript數(shù)組中的slice方法和join??方法

    這篇文章主要介紹了?javascript數(shù)組中的slice方法和join??方法,文章內(nèi)容介紹詳細,具有一的參考價值,需要的小伙伴可以參考一下,希望對你的學習有所幫助
    2022-03-03
  • JavaScript 動態(tài)添加表格行 使用模板、標記

    JavaScript 動態(tài)添加表格行 使用模板、標記

    在客戶端使用JavaScript動態(tài)添加表格行,先到網(wǎng)上找了相關(guān)的資料,發(fā)現(xiàn)有現(xiàn)成做好的組件,發(fā)現(xiàn)它只能夠滿足比較簡單的要求。
    2009-10-10
  • JavaScript對象的四種創(chuàng)建方法

    JavaScript對象的四種創(chuàng)建方法

    這篇文章主要介紹了JavaScript對象的四種創(chuàng)建方法,首先我們通過確定一個對象的屬性和方法展開主題相關(guān)內(nèi)容,需要的小伙伴可以參考一下
    2022-08-08
  • Element-UI的?InfiniteScroll?無限滾動組件基本使用及應用場景

    Element-UI的?InfiniteScroll?無限滾動組件基本使用及應用場景

    這篇文章主要介紹了Element-UI的InfiniteScroll無限滾動組件基本使用,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • js 定義對象數(shù)組(結(jié)合)多維數(shù)組方法

    js 定義對象數(shù)組(結(jié)合)多維數(shù)組方法

    下面小編就為大家?guī)硪黄猨s 定義對象數(shù)組(結(jié)合)多維數(shù)組方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • 善用事件代理,警惕閉包的性能陷阱。

    善用事件代理,警惕閉包的性能陷阱。

    關(guān)于JS性能優(yōu)化中的冰山一角:事件代理、警惕閉包。其實本文有一個文章已經(jīng)說到,閉包如何產(chǎn)生,閉包的作用;
    2011-01-01
  • JS生態(tài)系統(tǒng)加速eslint解析器使用實例探索

    JS生態(tài)系統(tǒng)加速eslint解析器使用實例探索

    這篇文章主要為大家介紹了JS生態(tài)系統(tǒng)加速之eslint解析器使用實例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01

最新評論

丰城市| 合山市| 辉南县| 恭城| 绥芬河市| 习水县| 西贡区| 四平市| 长治县| 临夏县| 土默特左旗| 农安县| 乌拉特后旗| 巍山| 湾仔区| 遵义市| 桂东县| 竹山县| 宁德市| 寻甸| 甘肃省| 隆德县| 绥江县| 封开县| 资溪县| 赞皇县| 舞阳县| 棋牌| 津市市| 平乡县| 岐山县| 扶沟县| 古交市| 万州区| 沁源县| 威海市| 玉门市| 新乡市| 班玛县| 鸡西市| 新密市|