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

通過說明與示例了解js五種設(shè)計模式

 更新時間:2019年06月17日 14:15:39   作者:全棧弄潮兒  
這篇文章主要介紹了通過說明與示例了解js五種設(shè)計模式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,,需要的朋友可以參考下

第一種模式:js工廠模式

var lev=function(){ 
return "啊打"; 
}; 
function Parent(){ 
var Child = new Object(); 
Child.name="李小龍"; 
Child.age="30"; 
Child.lev=lev; 
return Child; 
}; 
var x = Parent(); 
alert(x.name); 
alert(x.lev());

說明:

1.在函數(shù)中定義對象,并定義對象的各種屬性,,雖然屬性可以為方法,但是建議將屬性為方法的屬性定義到函數(shù)之外,這樣可以避免重復創(chuàng)建該方法

2.引用該對象的時候,這里使用的是 var x = Parent()而不是 var x = new Parent();因為后者會可能出現(xiàn)很多問題(前者也成為工廠經(jīng)典方式,后者稱之為混合工廠方式),不推薦使用new的方式使用該對象

3.在函數(shù)的最后返回該對象

4.不推薦使用這種方式創(chuàng)建對象,但應(yīng)該了解

第二種模式:js構(gòu)造函數(shù)模式

var lev=function(){ 
return "啊打"; 
}; 
function Parent(){ 
this.name="李小龍"; 
this.age="30"; 
this.lev=lev; 
}; 
var x =new Parent(); 
alert(x.name); 
alert(x.lev());

說明:

1.與工廠方式相比,使用構(gòu)造函數(shù)方式創(chuàng)建對象,無需再函數(shù)內(nèi)部重建創(chuàng)建對象,而使用this指代,并而函數(shù)無需明確return

2.同工廠模式一樣,雖然屬性的值可以為方法,扔建議將該方法定義在函數(shù)之外

3..同樣的,不推薦使用這種方式創(chuàng)建對象,但仍需要了解

第三種模式:js原型模式

var lev=function(){ 
return "啊打"; 
}; 
function Parent(){ }; 
Parent.prototype.name="李小龍"; 
Parent.prototype.age="30"; 
Parent.prototype.lev=lev; 
var x =new Parent(); 
alert(x.name); 
alert(x.lev());

說明:

1.函數(shù)中不對屬性進行定義

2.利用prototype屬性對屬性進行定義

3.同樣的,不推薦使用這樣方式創(chuàng)建對象

第四種模式:構(gòu)造函數(shù)+原型的js混合的模式(推薦)

function Parent(){ 
this.name="李小龍"; 
this.age=32; 
};
Parent.prototype.lev=function(){ 
return this.name; 
};
var x =new Parent();
alert(x.lev());

說明:

1.該模式是指混合搭配使用構(gòu)造函數(shù)方式和原型方式

2.將所有屬性不是方法的屬性定義在函數(shù)中(構(gòu)造函數(shù)方式)
將所有屬性值為方法的屬性利用prototype在函數(shù)之外定義(原型方式)

3.推薦使用這樣方式創(chuàng)建對象,這樣做有好處和為什么不單獨使用構(gòu)造函數(shù)方式和原型方式,由于篇幅問題這里不予討論

第五種模式:構(gòu)造函數(shù)+原型的動態(tài)原型模式(推薦)

function Parent(){ 
this.name="李小龍"; 
this.age=32; 
if(typeof Parent._lev=="undefined"){ 
Parent.prototype.lev=function(){ 
return this.name; 
} 
Parent._lev=true; 
} 
}; 
var x =new Parent(); 
alert(x.lev());

說明:

1.動態(tài)原型方式可以理解為混合構(gòu)造函數(shù),原型方式的一個特例

2.該模式中,屬性為方法的屬性直接在函數(shù)中進行了定義,但是因為

if(typeof Parent._lev=="undefined"){
Parent._lev=true;
}

從而保證創(chuàng)建該對象的實例時,屬性的方法不會被重復創(chuàng)建

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaScript遍歷Json串瀏覽器輸出的結(jié)果不統(tǒng)一問題

    JavaScript遍歷Json串瀏覽器輸出的結(jié)果不統(tǒng)一問題

    json串屬于javascript的一個對象,有鍵和值對應(yīng)的對象。這篇文章主要介紹了JavaScript遍歷Json串瀏覽器輸出的結(jié)果不統(tǒng)一問題的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • JavaScript判斷瀏覽器對CSS3屬性是否支持的多種方法

    JavaScript判斷瀏覽器對CSS3屬性是否支持的多種方法

    其實在使用css3的一些屬性時,為了兼顧低端瀏覽器對CSS3的不友好性,往往需要知道某些瀏覽器是否支持要使用的CSS3屬性,以此來做向下適配。比如常見的CSS3動畫就很有必要檢測瀏覽器是否支持。下面本文就分享了幾種方法,有需要的朋友們可以參考借鑒。
    2016-11-11
  • js實現(xiàn)左右輪播圖

    js實現(xiàn)左右輪播圖

    這篇文章主要為大家詳細介紹了js實現(xiàn)左右輪播圖,實現(xiàn)手動和自動兩種方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • 元素綁定click點擊事件方法

    元素綁定click點擊事件方法

    當點擊元素時,會發(fā)生 click 事件。當鼠標指針停留在元素上方,然后按下并松開鼠標左鍵時,就會發(fā)生一次 click。click() 方法觸發(fā) click 事件,或規(guī)定當發(fā)生 click 事件時運行的函數(shù)。
    2015-06-06
  • 利用Js+Css實現(xiàn)折紙動態(tài)導航效果實例源碼

    利用Js+Css實現(xiàn)折紙動態(tài)導航效果實例源碼

    這篇文章主要給大家介紹了利用Js+Css實現(xiàn)折紙動態(tài)導航的效果,實現(xiàn)后的效果非常不錯,文中給出了簡單的介紹和完整的實例代碼,對大家具有一定的參考價值,有需要的朋友們下面來一起看看吧。
    2017-01-01
  • 移動端觸摸滑動插件swiper使用方法詳解

    移動端觸摸滑動插件swiper使用方法詳解

    這篇文章主要為大家詳細介紹了移動端觸摸滑動插件swiper的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • TypeScript安裝與使用的詳細教程

    TypeScript安裝與使用的詳細教程

    TypeScript是JavaScript的超集,擴展了JavaScript的語法,因此現(xiàn)有的JavaScript代碼可與TypeScript一起工作無需任何修改,TypeScript通過類型注解提供編譯時的靜態(tài)類型檢查,下面這篇文章主要給大家介紹了關(guān)于TypeScript安裝與使用的詳細教程,需要的朋友可以參考下
    2023-01-01
  • Javascript 詳解封裝from表單數(shù)據(jù)為json串進行ajax提交

    Javascript 詳解封裝from表單數(shù)據(jù)為json串進行ajax提交

    這篇文章主要介紹了Javascript 詳解封裝from表單數(shù)據(jù)為json串進行ajax提交的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • TypeScript入門-基本數(shù)據(jù)類型

    TypeScript入門-基本數(shù)據(jù)類型

    本文主要介紹了TypeScript基本數(shù)據(jù)類型的相關(guān)知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-03-03
  • 動態(tài)加載JavaScript文件的兩種方法

    動態(tài)加載JavaScript文件的兩種方法

    第一種利用ajax方式,第二種是動靜創(chuàng)建一個script標簽,配置其src屬性,經(jīng)過把script標簽拔出到頁面head來加載js,感樂趣的網(wǎng)友可以看下
    2016-04-04

最新評論

高邮市| 萨嘎县| 桃园县| 曲周县| 汽车| 财经| 宜昌市| 桐梓县| 景东| 崇义县| 隆德县| 申扎县| 东兴市| 瑞金市| 东丽区| 温州市| 万山特区| 孟连| 上栗县| 台安县| 洞口县| 科技| 大同市| 哈尔滨市| 桃江县| 彭阳县| 张家口市| 海宁市| 四平市| 建阳市| 海林市| 北票市| 景谷| 山丹县| 吉隆县| 常宁市| 东阿县| 抚顺市| 巴青县| 泌阳县| 桃园市|