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

資訊專欄INFORMATION COLUMN

JS基礎(chǔ) -構(gòu)造函數(shù)與原型、原型鏈 Part two

lucas / 2079人閱讀

摘要:構(gòu)造函數(shù)構(gòu)造函數(shù)名大寫即使不寫,構(gòu)造函數(shù)也默認(rèn)返回,最好不寫創(chuàng)建實例執(zhí)行過程變成空對象屬性賦值賦值給擴(kuò)展引用類型都有構(gòu)造函數(shù)本質(zhì)是的語法糖判斷引用類型屬于哪個構(gòu)造函數(shù),例判斷邏輯的一層一層向上找,能否對應(yīng)到原型規(guī)則以下所說的引用類型均指對象

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

function Foo(name,age){// Foo構(gòu)造函數(shù)名大寫
    this.name =name;
    this.age = age;
    // return this;  //即使不寫,構(gòu)造函數(shù)也默認(rèn)返回this,最好不寫
}
var f = new Foo("lala",12);//創(chuàng)建實例
 (執(zhí)行過程:(1)this 變成空對象
           (2)屬性賦值
           (3)return this 賦值給 f
 )
 

擴(kuò)展:引用類型都有構(gòu)造函數(shù)

var obj = {} //本質(zhì)是  var obj = new Object() 的語法糖
var arr = [] //       var arr = new Array()
function Foo(){...} //var Foo = new Function(...)
(instanceof判斷引用類型屬于哪個構(gòu)造函數(shù),例: f instanceof Foo;判斷邏輯:f的_proto_,一層一層向上找,能否對應(yīng)到 Foo.prototype)

2.原型規(guī)則

以下所說的引用類型均指(對象、數(shù)組、函數(shù),不包括null)
(1)所有引用類型,均可自由擴(kuò)展屬性(具有對象特性)
(2)所有引用類型,均有一個隱式原型屬性(_proto_屬性),屬性值是一個普通對象
(3)只有所有函數(shù),均有一個顯示原型屬性(prototype屬性),屬性值是一個普通對象
(4)所有引用類型,_proto_屬性值 指向它的構(gòu)造函數(shù)的 prototype屬性值
   (obj._proto_ === Object.prototype)
 (5)當(dāng)想要得到一個引用類型的某一屬性時,如果其本身不具有該屬性,則會去它的_proto_(即它的構(gòu)造函數(shù)的 prototype)中尋找
 

知識補(bǔ)充:

 1.通過對象屬性形式執(zhí)行函數(shù)(例:obj.del()),this 指向?qū)ο蟊旧? 2.for(item in obj){ // for in在大多數(shù)瀏覽器屏蔽了來自原型的屬性
     if(obj.hasOwnProperty(item)){} //建議加上判斷
   }

3.原型鏈

相關(guān)問題:

1.原型鏈繼承的例子-封裝DOM查詢:
  function Elem(id){ //構(gòu)造函數(shù)
      this.elem = document.getElementById(id)
  }
  
  Elem.prototype.html = funcion(val){
      var elem = this.elem;
      if(val){
          elem.innerHtml = val;
          // return this //最好不寫 (鏈?zhǔn)讲僮鳎?      }else{
          rerurn elem.innerHtml 
      }  
  }
  
  Elem.prototype.on = funcion(type,fn){
      var elem = this.elem;
      elem.addEventListener(type,fn); //addEventListener可以多次綁定同一個事件并且不會覆蓋上一個事件
  }
  
  var div = new Elem("XXX");
  div.html("

明天你好

").on("click",function(){ //鏈?zhǔn)秸{(diào)用 alert("Hello World") }); 2.描述new對象的過程: (1)創(chuàng)建一個新對象; (2)this 指向這個新對象; (3)執(zhí)行代碼(this 賦值); (4)返回 this;

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

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

相關(guān)文章

  • Vue 2 | Part 7 組件

    摘要:因為這里會舉一連串的例子,就直接用來作為組件名稱了。這是一個組件名稱定義的時候有一點需要注意的,就是要使用中劃線分詞。在組件的方法里面返回數(shù)據(jù)就可以了。在的組件中間定義的內(nèi)容,就會被插入到的位置中去。敬請期待下一期,組件通信。 界面寫多了,大家應(yīng)該都會想到一個問題:JS的模塊寫好以后可以在多個地方重復(fù)使用,HTML有沒有辦法做到呢?Vue給了我們這個能力,使用組件,就可以輕松做到。 最...

    xcold 評論0 收藏0
  • LeetCode刷題——29. Divide Two Integers(Part 2靠大家)

    摘要:上篇文章寫了以我自己的思路來解決這個問題,但是運行時間過長,看了上的高效寫法是使用位運算的解法,當(dāng)初我自己寫這個問題是也想到了可以用位運算快一點,但是因為基礎(chǔ)差,對位運算的掌握不牢靠,還是選擇使用了減法的思路,在此將上高效解法做一個思路分析 上篇文章寫了以我自己的思路來解決這個問題,但是運行時間過長,看了leetcode 上的高效寫法是使用位運算的解法,當(dāng)初我自己寫這個問題是也想到了可...

    JouyPub 評論0 收藏0
  • [LeetCode] 482. License Key Formatting

    Problem You are given a license key represented as a string S which consists only alphanumeric character and dashes. The string is separated into N+1 groups by N dashes. Given a number K, we would wan...

    codercao 評論0 收藏0
  • [CS101] Programming Languages and OOP 編程語言及面向?qū)ο?em>基礎(chǔ)題

    摘要:編程語言及面向?qū)ο蠡A(chǔ)題 編程語言及面向?qū)ο蠡A(chǔ)題 Design Pattern What is singleton? Whats its cons and pros? How to implement it?Definition: Singleton pattern is a design pattern that ensure that only one instance of a...

    Drinkey 評論0 收藏0

發(fā)表評論

0條評論

lucas

|高級講師

TA的文章

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