亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

lucas / 2129人閱讀

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

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)建實(shí)例
 (執(zhí)行過程:(1)this 變成空對(duì)象
           (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è)構(gòu)造函數(shù),例: f instanceof Foo;判斷邏輯:f的_proto_,一層一層向上找,能否對(duì)應(yīng)到 Foo.prototype)

2.原型規(guī)則

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

知識(shí)補(bǔ)充:

 1.通過對(duì)象屬性形式執(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可以多次綁定同一個(gè)事件并且不會(huì)覆蓋上一個(gè)事件
  }
  
  var div = new Elem("XXX");
  div.html("

明天你好

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/95038.html

相關(guān)文章

  • Vue 2 | Part 7 組件

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

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

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

    JouyPub 評(píng)論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 評(píng)論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 評(píng)論0 收藏0

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

0條評(píng)論

lucas

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<