• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. javascript程序設計

        時間:2024-10-22 21:58:11 JavaScript 我要投稿

        javascript程序設計

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

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

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

          一、prototype和__proto__的概念

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

          __proto__是一個對象擁有的內置屬性(請注意:prototype是函數的內置屬性,__proto__是對象的內置屬性),是JS內部使用尋找原型鏈的屬性。

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

          二、new 的過程

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

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

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

          (2) p.__proto__ = Person.prototype;

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

          關鍵在于第二步,我們來證明一下:

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

          這段代碼會返回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是一個引用指向Person的對象。我們在Person的原型上定義了一個sayName方法和age屬性,當我們執行p.age時,會先在this的內部查找(也就是構造函數內部),如果沒有找到然后再沿著原型鏈向上追溯。

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

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【javascript程序設計】相關文章:

        JavaScript高級程序設計:本地對象Array10-22

        網頁程序設計之實用JavaScript代碼段09-23

        對javascript的理解08-08

        常用的JavaScript模式09-22

        Javascript的this用法簡述08-15

        JavaScript學習筆記08-24

        JavaScript 基礎教學09-29

        JavaScript的課堂講解09-03

        JavaScript常用方法匯總10-25

        JavaScript數組常用方法介紹09-04

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲免费精品一区二区三区 | 日韩欧美国产另类一区二区 | 亚洲男人综合久久综合 | 日韩亚洲欧美中文三级 | 尹人香蕉99久久综合网站 | 亚洲人成网站999久久久综合 |

            javascript程序設計

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

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

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

              一、prototype和__proto__的概念

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

              __proto__是一個對象擁有的內置屬性(請注意:prototype是函數的內置屬性,__proto__是對象的內置屬性),是JS內部使用尋找原型鏈的屬性。

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

              二、new 的過程

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

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

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

              (2) p.__proto__ = Person.prototype;

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

              關鍵在于第二步,我們來證明一下:

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

              這段代碼會返回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是一個引用指向Person的對象。我們在Person的原型上定義了一個sayName方法和age屬性,當我們執行p.age時,會先在this的內部查找(也就是構造函數內部),如果沒有找到然后再沿著原型鏈向上追溯。

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