国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS基礎 -構造函數與原型、原型鏈 Part two

lucas / 2069人閱讀

摘要:構造函數構造函數名大寫即使不寫,構造函數也默認返回,最好不寫創建實例執行過程變成空對象屬性賦值賦值給擴展引用類型都有構造函數本質是的語法糖判斷引用類型屬于哪個構造函數,例判斷邏輯的一層一層向上找,能否對應到原型規則以下所說的引用類型均指對象

1.構造函數:

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

擴展:引用類型都有構造函數

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

2.原型規則

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

知識補充:

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

3.原型鏈

相關問題:

1.原型鏈繼承的例子-封裝DOM查詢:
  function Elem(id){ //構造函數
      this.elem = document.getElementById(id)
  }
  
  Elem.prototype.html = funcion(val){
      var elem = this.elem;
      if(val){
          elem.innerHtml = val;
          // return this //最好不寫 (鏈式操作)
      }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(){ //鏈式調用 alert("Hello World") }); 2.描述new對象的過程: (1)創建一個新對象; (2)this 指向這個新對象; (3)執行代碼(this 賦值); (4)返回 this;

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/95038.html

相關文章

  • Vue 2 | Part 7 組件

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

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

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

    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 編程語言及面向對象基礎

    摘要:編程語言及面向對象基礎題 編程語言及面向對象基礎題 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

發表評論

0條評論

lucas

|高級講師

TA的文章

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