成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

javascript編程之繼承

livem / 3247人閱讀

摘要:中的繼承有多少種方式去某度搜一下,說幾種的都有,看的頭暈眼花,還是云里霧里,于是就自己認(rèn)真理一下,寫一篇按照自己的理解來進(jìn)行的分類。

js中的繼承有多少種方式?去某度搜一下,說幾種的都有,
看的頭暈眼花,還是云里霧里,于是就自己認(rèn)真理一下,寫一篇按照自己的理解來進(jìn)行的分類。

JS實(shí)現(xiàn)繼承的核心技術(shù)點(diǎn)無非幾種:

 1: new 關(guān)鍵字
 2: prototype
 3: call、apply
 4: Object.create() ES5
 5: Object.assign() ES6
 6: 拷貝(深拷貝、淺拷貝)

網(wǎng)上有說4,5,6種的,大多是組合使用然后根據(jù)具體使用情況分類, 也有阮一峰老師按照構(gòu)造函數(shù)、非構(gòu)造函數(shù)的分類(這個(gè)好理解些),
這些都各有各的道理,但是都是他們的分類,不是我自己理解的分類, 所以即使這次看懂了,下次難免會(huì)忘記,因此自己總結(jié)一下。

1,構(gòu)造函數(shù)式繼承,new

var func=function(name){
this.name=name
};
var b=new func("b");
var c=new func("c");
b.name;//b
c.name;//c

2,原型鏈?zhǔn)嚼^承,prototype

var func=function(des){
this.des=des;
};
func.prototype.color="red";
var b=function(){
this.color=function(){
return "green"
}
return "orange"
};
b.prototype=func.prototype;//私有的des無法繼承
b()//orange
new b().color()// green
new b().color;// function(){return "green"} 私有覆蓋公有

3,call、apply

/*父*/
function Parent(add,net,no,teacher) {
 this.add = add;
 this.net = net;
 this.no = no;
 this.teacher = teacher
}
/*子*/
function Child(name,age,sex,id) {
 this.name = name;
 this.sex = sex;
 this.age = age;
 this.id = id;
 Parent.call(this,"添加","www.google.com","1024","copy"); 
 //這個(gè)時(shí)候的Parent中的this已經(jīng)被Child所代替
}
var child = new Child("都變了","18","男","2333");
child.add //添加
function Parent(add,net,no,teacher) {
 this.add = add;
 this.net = net;
 this.no = no;
 this.teacher = teacher
}
/*子類*/
function Child(name,age,sex,id) {
 this.name = name;
 this.sex = sex;
 this.age = age;
 this.id = id;
 Parent.apply(this,["添加","www.google.com","1024","copy"]); 
 //這個(gè)時(shí)候的Parent中的this已經(jīng)被Child所代替
}
var child = new Child("都變了","18","男","2333");
child.add //添加

4,Object.create() ES5支持

var func=function(des){
this.des=des || "empty"
};
func.prototype.getDes=function(){
 return this.des
}

var b=function(){}
b.prototype=Object.create(new func("哈哈哈"));
//此處new func("哈哈哈") 用JSON對(duì)象替代可能會(huì)比較好理解,不過不修改也是有原因的
new b("Dobie").getDes()// 哈哈哈

5: Object.assign() ES6支持

var func=function(des){
this.des=des || "empty"
};
func.prototype.getDes=function(){
 return this.des
}

var b=function(){}
b.prototype=Object.assign(new func("哈哈哈"));
//此處new func("哈哈哈") 用JSON對(duì)象替代可能會(huì)比較好理解
new b("Dobie").getDes()// 哈哈哈

6: 拷貝(深拷貝、淺拷貝)

這個(gè)去某度搜一下就可以,暫時(shí)留坑,原理如標(biāo)題名,就是循環(huán)復(fù)制一份出來,
區(qū)別是淺拷貝只拷貝引用(推薦了解 javascript 堆和棧,又是一個(gè)坑),
修改時(shí)會(huì)影響到父類,深拷貝則是完全多帶帶開辟新的存儲(chǔ)地址,不會(huì)互相影響

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/91929.html

相關(guān)文章

  • 每個(gè) JavaScript 工程師都應(yīng)當(dāng)知道的 10 個(gè)面試題

    摘要:所支持的面向?qū)ο缶幊贪ㄔ屠^承。發(fā)明于年的就是首批支持函數(shù)式編程的語言之一,而演算則可以說是孕育了這門語言。即使在今天,這個(gè)家族的編程語言應(yīng)用范圍依然很廣。 1. 能說出來兩種對(duì)于 JavaScript 工程師很重要的編程范式么? JavaScript 是一門多范式(multi-paradigm)的編程語言,它既支持命令式(imperative)/面向過程(procedural)編程...

    jone5679 評(píng)論0 收藏0
  • 每個(gè) JavaScript 工程師都應(yīng)當(dāng)知道的 10 個(gè)面試題

    摘要:所支持的面向?qū)ο缶幊贪ㄔ屠^承。發(fā)明于年的就是首批支持函數(shù)式編程的語言之一,而演算則可以說是孕育了這門語言。即使在今天,這個(gè)家族的編程語言應(yīng)用范圍依然很廣。 1. 能說出來兩種對(duì)于 JavaScript 工程師很重要的編程范式么? JavaScript 是一門多范式(multi-paradigm)的編程語言,它既支持命令式(imperative)/面向過程(procedural)編程...

    YorkChen 評(píng)論0 收藏0
  • 每個(gè) JavaScript 工程師都應(yīng)當(dāng)知道的 10 個(gè)面試題

    摘要:所支持的面向?qū)ο缶幊贪ㄔ屠^承。發(fā)明于年的就是首批支持函數(shù)式編程的語言之一,而演算則可以說是孕育了這門語言。即使在今天,這個(gè)家族的編程語言應(yīng)用范圍依然很廣。 1. 能說出來兩種對(duì)于 JavaScript 工程師很重要的編程范式么? JavaScript 是一門多范式(multi-paradigm)的編程語言,它既支持命令式(imperative)/面向過程(procedural)編程...

    Gilbertat 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對(duì)象”還好嗎?

    摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類是相似對(duì)象的描述,稱為類的定義,是該類對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過對(duì)類的實(shí)體化形成的對(duì)象。一類的對(duì)象抽取出來。注意中,對(duì)象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    李昌杰 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對(duì)象”還好嗎?

    摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類是相似對(duì)象的描述,稱為類的定義,是該類對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過對(duì)類的實(shí)體化形成的對(duì)象。一類的對(duì)象抽取出來。注意中,對(duì)象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    Lyux 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<