亚洲AV日韩AⅤ综合手机在线观看,激情婷婷久久综合色,欧美色五月婷婷久久,久久国产精品99久久人人澡

  • <abbr id="uk6uq"><abbr id="uk6uq"></abbr></abbr>
  • <tbody id="uk6uq"></tbody>
  • javascript程序設(shè)計(jì)

    時(shí)間:2024-10-22 21:58:11 JavaScript 我要投稿

    javascript程序設(shè)計(jì)

      javascript的原型鏈有顯式和隱式兩種:

      顯式原型鏈:即我們常見的prototype;

      隱式原型鏈:在一般環(huán)境下無法訪問,即不可見,在FireFox下可以通過__proto__方式訪問;隱式原型鏈用于javascript引擎內(nèi)部對(duì)原型鏈的搜尋,通過顯示原型鏈來設(shè)置;

      一、prototype和__proto__的概念

      prototype是函數(shù)的一個(gè)屬性(每個(gè)函數(shù)都有一個(gè)prototype屬性),這個(gè)屬性是一個(gè)指針,指向一個(gè)對(duì)象。它是顯示修改對(duì)象的原型的屬性。

      __proto__是一個(gè)對(duì)象擁有的內(nèi)置屬性(請(qǐng)注意:prototype是函數(shù)的內(nèi)置屬性,__proto__是對(duì)象的內(nèi)置屬性),是JS內(nèi)部使用尋找原型鏈的屬性。

      用chrome和FF都可以訪問到對(duì)象的__proto__屬性,IE不可以。

      二、new 的過程

      var Person = function(){};var p = new Person();

      new的過程拆分成以下三步:

      (1) var p={}; 也就是說,初始化一個(gè)對(duì)象p

      (2) p.__proto__ = Person.prototype;

      (3) Person.call(p); 也就是說構(gòu)造p,也可以稱之為初始化p

      關(guān)鍵在于第二步,我們來證明一下:

      var Person = function(){};var p = new Person();alert(p.__proto__ === Person.prototype);

      這段代碼會(huì)返回true。說明我們步驟2是正確的。

      三、示例

      var Person = function(){};Person.prototype.sayName = function() { alert("My Name is Jacky");};Person.prototype.age = 27;var p = new Person();p.sayName();

      p是一個(gè)引用指向Person的對(duì)象。我們?cè)赑erson的原型上定義了一個(gè)sayName方法和age屬性,當(dāng)我們執(zhí)行p.age時(shí),會(huì)先在this的內(nèi)部查找(也就是構(gòu)造函數(shù)內(nèi)部),如果沒有找到然后再沿著原型鏈向上追溯。

      這里的向上追溯是怎么向上的呢?這里就要使用__proto__屬性來鏈接到原型(也就是Person.prototype)進(jìn)行查找。最終在原型上找到了age屬性。

    【javascript程序設(shè)計(jì)】相關(guān)文章:

    JavaScript高級(jí)程序設(shè)計(jì):本地對(duì)象Array10-22

    網(wǎng)頁程序設(shè)計(jì)之實(shí)用JavaScript代碼段09-23

    對(duì)javascript的理解08-08

    常用的JavaScript模式09-22

    Javascript的this用法簡述08-15

    JavaScript學(xué)習(xí)筆記08-24

    JavaScript 基礎(chǔ)教學(xué)09-29

    JavaScript的課堂講解09-03

    JavaScript常用方法匯總10-25

    JavaScript數(shù)組常用方法介紹09-04