成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JS原型鏈

番茄西紅柿 / 1693人閱讀

摘要:組合繼承把公共數(shù)據(jù)放在中,這樣的話就不會公用一個(gè)引用類型,優(yōu)化組合繼承,判斷原型和實(shí)例的關(guān)系,只要是原型鏈中的都可以

  原型鏈

  1. 每一個(gè)實(shí)例都有自己的原型,可以__proto__訪問
  2. 構(gòu)造函數(shù),通過new創(chuàng)建實(shí)例
  3. 構(gòu)造函數(shù)通過prototype指向原型對象
  4. 原型對象通過constructor指向構(gòu)造函數(shù)
  5. 如下圖所示:
  6. 訪問對象中的屬性,如果不存在,那么會在原型中查找,如果還沒有,繼續(xù)在原型中查找

    繼承

1 構(gòu)造函數(shù)

function Parent(name) {
    this.name = name
}
function Child(age) {
    Parent.call(this);
    this.age = age
}

  

2 原型鏈

child.prototype = new Parent()
缺點(diǎn):當(dāng)存在引用類型的時(shí)候,一個(gè)實(shí)例數(shù)據(jù)的改變,另一個(gè)也會改變,例如 P1.friend = [Jany, LiMINg],當(dāng)P1增加一個(gè)朋友,另外的實(shí)例也會增加。

3 組合繼承

把公共數(shù)據(jù)放在Parent中,這樣的話就不會公用一個(gè)引用類型

1 function Parent(name) {
2     this.name = [‘Jang’,‘Dany’]
3 }
4 function Child(age) {
5     Parent.call(this);
6     this.age = age
7 }
8 child.prototype = new Parent()

 

4 優(yōu)化組合繼承

function Parent(name) {
    this.name = [‘Jang’,‘Dany’]
}
function Child(age) {
    Parent.call(this);
    this.age = age
}
Child.prototype = Object.create(Parent.prototype)
Child.prototype.constructor = Child

  

判斷原型和實(shí)例的關(guān)系

1. instance instanceof object,只要是原型鏈中的都可以
2. object.prototyoe.isprototypeoof(instance)
3. object.prototype.tostring.call(instance)

  

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/1943.html

相關(guān)文章

  • JS基礎(chǔ)-原型、原型真的不能一知半解

    摘要:原型鏈和對象的原型是對象實(shí)例和它的構(gòu)造函數(shù)之間建立的鏈接,它的值是構(gòu)造函數(shù)的。對象的原型根據(jù)上文提到的構(gòu)造調(diào)用函數(shù)的時(shí)候會創(chuàng)建一個(gè)新對象,自動將的原型指向構(gòu)造函數(shù)的對象。 showImg(https://segmentfault.com/img/remote/1460000020185197); JS的原型、原型鏈一直是比較難理解的內(nèi)容,不少初學(xué)者甚至有一定經(jīng)驗(yàn)的老鳥都不一定能完全說清...

    changfeng1050 評論0 收藏0
  • 從實(shí)現(xiàn)角度分析js原型

    摘要:從實(shí)現(xiàn)角度分析原型鏈歡迎來我的博客閱讀從實(shí)現(xiàn)角度分析原型鏈網(wǎng)上介紹原型鏈的優(yōu)質(zhì)文章已經(jīng)有很多了,比如說作為補(bǔ)充,就讓我們換個(gè)角度,從實(shí)現(xiàn)來分析一下吧本文假設(shè)你對原型鏈已經(jīng)有所了解。 從實(shí)現(xiàn)角度分析js原型鏈 歡迎來我的博客閱讀:《從實(shí)現(xiàn)角度分析js原型鏈》 網(wǎng)上介紹原型鏈的優(yōu)質(zhì)文章已經(jīng)有很多了,比如說: https://github.com/mqyqingfeng/Blog/issu...

    CompileYouth 評論0 收藏0
  • 理解js原型與繼承

    摘要:相當(dāng)于在用原型繼承編寫復(fù)雜代碼前理解原型繼承模型十分重要。同時(shí),還要清楚代碼中原型鏈的長度,并在必要時(shí)結(jié)束原型鏈,以避免可能存在的性能問題。 js是一門動態(tài)語言,js沒有類的概念,ES6 新增了class 關(guān)鍵字,但只是語法糖,JavaScript 仍舊是基于原型。 至于繼承,js的繼承與java這種傳統(tǒng)的繼承不一樣.js是基于原型鏈的繼承. 在javascript里面,每個(gè)對象都有一...

    wthee 評論0 收藏0
  • js原型 原型 原型的繼承

    摘要:圖片描述缺點(diǎn)是無法實(shí)現(xiàn)多繼承可以在構(gòu)造函數(shù)中,為實(shí)例添加實(shí)例屬性。 對象的方法 Object.assign() 對象可以簡寫 ,如果 key 和 value 相等則可以簡寫 let name = xm; let age = 2; let obj = { name, age, fn(){ // 可以省略函數(shù)關(guān)鍵字和冒號: console.log(2...

    soasme 評論0 收藏0
  • js原型

    摘要:構(gòu)造函數(shù),實(shí)例,原型三者的關(guān)系如下圖構(gòu)造函數(shù)是構(gòu)成整個(gè)原型鏈的關(guān)鍵,是他利用將原型傳給了后代。因此,通過操縱構(gòu)造函數(shù)的,就能夠操縱原型鏈,從而對原型鏈進(jìn)行自在的拼接。 要理解js的原型鏈主要就是理清楚以下三者的關(guān)系: 構(gòu)造函數(shù)的protitype屬性 對象的__proto__屬性 對象的constructor屬性 在js中,函數(shù)作為一等公民,它是一個(gè)對象,可以擁有自己的屬性,可...

    NervosNetwork 評論0 收藏0
  • 【前端基礎(chǔ)進(jìn)階】JS原型、原型、對象詳解

    摘要:二構(gòu)造函數(shù)我們先復(fù)習(xí)一下構(gòu)造函數(shù)的知識上面的例子中和都是的實(shí)例。這兩個(gè)實(shí)例都有一個(gè)構(gòu)造函數(shù)屬性,該屬性是一個(gè)指針指向。原型鏈其中是對象的實(shí)例。 一. 普通對象與函數(shù)對象 JavaScript 中,萬物皆對象!但對象也是有區(qū)別的。分為普通對象和函數(shù)對象,Object 、Function 是 JS 自帶的函數(shù)對象。下面舉例說明 var o1 = {}; var o2 =new Objec...

    explorer_ddf 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<