<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                你將學到: * 每個函數中都有一個prototype屬性,該屬性所存儲的就是原型對象; * 為原型對象添加屬性; * 使用原型對象的新增屬性; * 區分對象自身屬性和原型屬性; * __proto__,用于保存各對象原型的神秘鏈接; * 介紹原型方法 * 強化內建對象 ***** # 原型屬性 prototype ## 添加方法和屬性 * 新建對象時添加方法和屬性 * 通過構造器函數的prototype屬性來增加該構造器所能提供的功能 ## 使用原型的方法和屬性 理解原型的"live"駐留概念 對象都是通過傳引用的方式傳遞的,新對象的的屬性和方法指向原型對象,共享一份屬性和方法。當我們修改原型,則相關對象也都會修改。 ``` function Gadget(name, color){ this.name = name; this.color = color; this.whatAreYou = function(){ return 'I am a ' + this.color + ' ' + this.name; } } Gadget.prototype // {constructor: ?} // constructor: ? Gadget(name, color)__proto__: Object Gadget.prototype = { price: 100, rating: 3, getInfo: function(){ return 'Rating: ' + this.rating + ', price: ' + this.price; } } var newtoy = new Gadget('webcam', 'black'); newtoy.color; // "black" newtoy.name // "webcam" newtoy.whatAreYou(); // "I am a black webcam" newtoy.price; // 100 newtoy.rating; // 3 newtoy.getInfo(); // "Rating: 3, price: 100" Gadget.prototype.get = function(what){ return this[what]; }; newtoy.get('price'); // 100 newtoy.get('color'); // "black" ``` ## 自身屬性與原型屬性 自身屬性 --> 原型屬性obj.constructor.prototype(亦 obj.__proto__) 每個對象都會有一個構造器,原型也是對象,原型也有構造器,構造器又會有自己的原型。這就形成了一個原型鏈 prototype chain,最后一環一定時Object內建對象。 ## 自身屬性重寫原型屬性 自身屬性優先于原型屬性,屬性重名的情況下。 判斷可枚舉屬性的方法 `propertyIsEnumerable()` 判斷屬性歸自身還是原型 `hasOwnProperty()` 所有原型屬性,`propertyIsEnumerable()`都會返回false ## isPropertyOf() 當前對象是否是另一個對象的原型 ## __proto__ 構造器是中轉站,一頭是對象,一頭是原型對象 __proto__實際上是某個實體對象的屬性; prototype是屬于構造器函數的屬性。 # 擴展內建對象 通過內建構造函數的prototype增加方法; ??如果想要通過原型為某個對象添加一個新屬性,務必先檢查一下該屬性是否已經存在。 ``` if(!String.prototype.reverse){ String.prototype.reverse = function(){...} } ``` ## 原型陷阱 ??當我們重寫某對象的prototype時,重置相應的constructor屬性! ``` Dog.prototype = {k:v}; Dog.prototype.constructor = Dog; ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看