91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

js淺拷貝的實現方式有哪些

js
小億
115
2023-08-04 16:44:19
欄目: 編程語言

在 JavaScript 中,有幾種常見的實現方式可以實現淺拷貝:

  1. 使用 Object.assign() 方法:Object.assign() 方法可以將一個或多個源對象的所有可枚舉屬性復制到目標對象中。它會返回目標對象作為結果。這個方法只會進行淺拷貝,即只復制對象的第一層屬性。例如:
let obj1 = { a: 1, b: { c: 2 } };
let obj2 = Object.assign({}, obj1);
console.log(obj2); // { a: 1, b: { c: 2 } }
  1. 使用擴展運算符(…):擴展運算符可以將一個對象的可枚舉屬性拷貝到另一個對象中。它也是淺拷貝。例如:
let obj1 = { a: 1, b: { c: 2 } };
let obj2 = { ...obj1 };
console.log(obj2); // { a: 1, b: { c: 2 } }
  1. 使用 Array.prototype.slice() 方法:slice() 方法可以創建一個新數組,其中包含從指定開始索引到結束索引(不包括結束索引)的所有元素。如果原始數組中的元素是對象或數組,它們只會被復制引用。這也是一種淺拷貝方式。例如:
let arr1 = [1, 2, { a: 3 }];
let arr2 = arr1.slice();
console.log(arr2); // [1, 2, { a: 3 }]
  1. 使用 Array.prototype.concat() 方法:concat() 方法可以用于連接兩個或多個數組,并返回一個新數組,該新數組包含連接的數組中的所有元素。如果原始數組中的元素是對象或數組,它們只會被復制引用。這也是一種淺拷貝方式。例如:
let arr1 = [1, 2, { a: 3 }];
let arr2 = [].concat(arr1);
console.log(arr2); // [1, 2, { a: 3 }]

總結起來,上述方法都可以用于實現淺拷貝,但需要注意的是,淺拷貝只會復制對象的第一層屬性,如果對象的屬性值是對象或數組,那么只會復制引用而不會復制其內容。如果需要實現深拷貝,可以使用其他方法,如遞歸遍歷對象或數組來實現。

0
嘉义县| 尼木县| 阳原县| 即墨市| 博兴县| 邹平县| 徐州市| 大厂| 京山县| 芮城县| 牟定县| 和林格尔县| 噶尔县| 桐乡市| 澄迈县| 辽中县| 朔州市| 墨玉县| 丹阳市| 南乐县| 怀集县| 玉林市| 全南县| 中山市| 宜春市| 杨浦区| 阿拉善盟| 五台县| 同仁县| 昭平县| 四平市| 盈江县| 丹阳市| 鹤庆县| 溧水县| 汉阴县| 韶关市| 洮南市| 河东区| 恩施市| 丹巴县|