<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## Object.create(IE9+) ### 問題拋出 ``` var obj = { getX:function(){ } }; function Fn(){ } Fn.prototype = obj; ``` ![](https://box.kancloud.cn/f680b1fa79c29d48caa44597f1709cfb_313x129.png) 因為更改了原本prototype的堆內存,自定義的又沒有constructor,So,我們發現 ![](https://box.kancloud.cn/c4dcf592191e273d8f51fd7b8c04c482_387x93.png) 最終會指向`Object類` ``` var obj = { constructor:Fn ,getX:function(){ } }; function Fn(){ } Fn.prototype = obj; Fn.prototype.sum = function(){} //此時Fn.prototype和obj都指向同一塊內存,嗯,不大好 var obj2 = {}; for(var key in obj){ if(obj.hasOwnProperty(key)){ obj2[key] = obj[key]; } } //將拷貝出來的新內存空間obj2的地址再賦給prototype即可 ``` 嗯,為了解決這個問題,ecma5提供了一個新API ### Object.create 該方法創建一個擁有指定原型和若干個指定屬性的對象 ``` Object.create(proObj) //創建一個新的對象,但是還要把proObj作為這個對象的原型 ``` ``` var obj = {getX:function(){}}; var obj2 = Object.create(obj); //->obj2 //__proto__: // getX:function(){} // __proto__:Object.prototype obj2.getX(); obj.getY = function(){console.log(2)}; obj2.getY(); //2 ``` Object.create實現 ``` function object(obj){ function Fn(){}; Fn.prototype = obj; return new Fn; } ``` 正常時使用 ``` function Sum(){} Sum.prototype = Object.create(obj); Sum.prototype.constructor = Sum; ``` 好處就是Sum.prototype和obj并不會指向同一個內存空間(不在一個層級); 這樣我們修改Sum的prototype,并不會直接影響到obj對象這一層
                  <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>

                              哎呀哎呀视频在线观看