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

資訊專欄INFORMATION COLUMN

原生JS大揭秘—看清JS繼承本質(zhì)

sutaking / 663人閱讀

摘要:繼承理論源于生活又高于生活在中繼承,和現(xiàn)實生活中繼承是相似的如兒子繼承父親財產(chǎn)子女的生理特性有父母的特性身高膚色性格等等只是一定比例上是這樣的,不是絕對的一樣中繼承方法有以下幾種本質(zhì)區(qū)別方法特別注意是本質(zhì)區(qū)別冒充繼承也稱之為借用構(gòu)造函數(shù)這種

JS繼承
理論源于生活、又高于生活
在JS中“繼承”,和現(xiàn)實生活中繼承是相似的
如:兒子繼承父親財產(chǎn)、子女的生理特性有父母的特性(身高、膚色、性格等等....)
只是一定比例上是這樣的,不是絕對的一樣
JS中繼承方法有以下幾種本質(zhì)區(qū)別方法(特別注意是本質(zhì)區(qū)別)

冒充繼承(也稱之為借用構(gòu)造函數(shù))

這種方法實現(xiàn)原理主要是利用了call/apply
  // 定義父“類”(ES6之前JS中沒有嚴格意義上的“類”概念)
  function Parent(name, age) {
      this.name = name
      this.age = age
      this.run = function () {
          console.log("run...")
      }
  }
  // 定義子”類“
  Student.prototype.sid=200
  function Student(name, age, sex) {
      var _super = Parent
      // call方法強制更改this指向,注意這個方向只是單純的操作當前this對象,并不會影響到其“原型對象”
      _super.call(this, name, age)
      delete _super
      this.sex=sex
  }
  
  var student=new Student("zs",20,"Male")
  console.log(student.name) // zs
  console.log(student.sid) // 200
  

原型鏈繼承

  // 定義父“類”(ES6之前JS中沒有嚴格意義上的“類”概念)
  Parent.prototype.lastName="damon"
  function Parent() {
      this.lastName="pool"
  }
  // 定義子”類“
  // 子類的原型指向父類的一個實例對象
  Student.prototype=new Parent()
  function Student() {
  }
  
  var student=new Student()
  // 查找過程是怎么樣的?
  /*
   1、首先會在對象student自身身上查找,
   2、如果找不到,則到原型上查找,那么student的原型是誰?
      student.__proto__===Student.prototype
      而Student.prototype=new Student也就是原型現(xiàn)在指向的是父類的實例
   3、所以到父類的實例上去查找,如果找不到,再到父類實例的原型上查找
   4、如果找不到,則到原型的原型上查找,此時到了Object.prototype身上
      Object.prototype.__proto__===null
   5、如果找不到,則返回undefined
  */
  console.log(student.lastName) // damon
  

尚未寫完整,待續(xù)...

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

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

相關(guān)文章

  • 揭秘babel的魔法之class繼承的處理2

    摘要:并且用驗證了中一系列的實質(zhì)就是魔法糖的本質(zhì)。抽絲剝繭我們首先看的編譯結(jié)果這是一個自執(zhí)行函數(shù),它接受一個參數(shù)就是他要繼承的父類,返回一個構(gòu)造函數(shù)。 如果你已經(jīng)看過第一篇揭秘babel的魔法之class魔法處理,這篇將會是一個延伸;如果你還沒看過,并且也不想現(xiàn)在就去讀一下,單獨看這篇也沒有關(guān)系,并不存在理解上的障礙。 上一篇針對Babel對ES6里面基礎(chǔ)class的編譯進行了分析。這一篇將...

    BlackHole1 評論0 收藏0
  • 原生JS揭秘—撩開this的面紗

    摘要:隨著函數(shù)使用場景的不同,而發(fā)生變化。是當前執(zhí)行上下文中的一部分。在中新增了該方法也是強制更改指向。但是和的區(qū)別是更改后不會立即執(zhí)行,它會返回一個新函數(shù)。 this何意?在英文中this是一個人稱代詞,表示這個的,具體指哪個?不確定,只有在具體的語境中才可確定,在編程語言中this也有同樣的類似特性。在js中this是一個關(guān)鍵字,它不能被當做變量、屬性,也不可以進行賦值操作。this 隨...

    Brenner 評論0 收藏0
  • 原生JS揭秘—同步與異步

    摘要:中任務分類同步異步同步任務異步任務中異步類型定時任務網(wǎng)絡請求回調(diào)函數(shù)事件綁定只能傳入一個參數(shù)未完待續(xù) JS中任務分類 同步 異步 同步任務 異步任務 JS中異步類型 定時任務 網(wǎng)絡請求 回調(diào)函數(shù) 事件綁定 Promise(resolve只能傳入一個參數(shù)) 未完待續(xù)...

    不知名網(wǎng)友 評論0 收藏0
  • 原生JS揭秘—原型鏈

    原型鏈showImg(https://segmentfault.com/img/bVboNT0?w=1332&h=1333);

    macg0406 評論0 收藏0

發(fā)表評論

0條評論

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