<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 1.淺拷貝 * 拷貝就是把父對像的屬性,全部拷貝給子對象。 * 淺拷貝就是數據雙向改變。 * JavaScript存儲對象都是存地址的。 * 淺拷貝會導致 obj1 和obj2 指向同一塊內存地址。改變了其中一方的內容,都是在原來的內存上做修改會導致拷貝對象和源對象都發生改變。 ``` var obj1 = {//淺拷貝 'name' : 'zhangsan', 'age' : '18', }; var obj2 = obj1; obj2.name = '987654' console.log(obj1.name) //987654 console.log(obj2.name) //987654 //淺拷貝,雙向改變,指向同一片內存空間 var arr1 = [1, 2, 3]; var arr2 = arr1; arr1[0] = 'change'; console.log('shallow copy: ' + arr1 + " ); //shallow copy: change,2,3 console.log('shallow copy: ' + arr2 + " ); //shallow copy: change,2,3 ``` ## 2、深拷貝:是開辟一塊新的內存地址,將原對象的各個屬性逐個復制進去。對拷貝對象和源對象各自的操作互不影響。 1、使用遞歸的方式實現深拷貝 ``` //使用遞歸的方式實現數組、對象的深拷貝 function deepClone1(obj) { //判斷拷貝的要進行深拷貝的是數組還是對象,是數組的話進行數組拷貝,對象的話進行對象拷貝 var objClone = Array.isArray(obj) ? [] : {}; //進行深拷貝的不能為空,并且是對象或者是 if (obj && typeof obj === "object") { for (key in obj) { if (obj.hasOwnProperty(key)) { if (obj[key] && typeof obj[key] === "object") { objClone[key] = deepClone1(obj[key]); } else { objClone[key] = obj[key]; } } } } return objClone; } ``` 2、通過 JSON 對象實現深拷貝 ``` function deepClone2(obj) { var _obj = JSON.stringify(obj), objClone = JSON.parse(_obj); return objClone; } var obj1 = { 'name' : 'pengyaping', 'age' : '18', }; var a = deepClone2(obj1).name = '45456465' console.log(a) // 45456465 console.log(obj1.name) //pengyaping ``` > JSON對象實現深拷貝的一些問題 * 無法實現對對象中方法的深拷貝 ## 3、通過jQuery的extend方法實現深拷貝 ``` var array = [1,2,3,4]; var newArray = $.extend(true,[],array); ``` ## 4、運用到js的 for in ``` var obj1 = { 'name' : 'pengyaping', 'age' : '18', }; function cloneObject(object){ var newObject = {}; for(var i in object){ newObject[i] = object[i]; } return newObject; } var a = cloneObject(obj1).name= '12313' console.log(a) console.log(obj1) ```
                  <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>

                              哎呀哎呀视频在线观看