在下面的代码中,我预计3个日志的结果将是相同的.
但他们不是.
var m = (function () {
var arr = [
{a: 1, b: 2},
{c: 3, d: 4}
];
return {
getArr: function () {
return arr;
}
};
})();
var myArr = m.getArr();
console.log(myArr);
myArr.pop();
console.log(m.getArr());Run Code Online (Sandbox Code Playgroud)
确保数组不作为引用传递的最佳方法是什么?
用return arr.map()吗?
JSON.parse(JSON.stringify(arr)) 将为您提供对象或数组的深层副本.
var m = (function () {
var arr = [
{a: 1, b: 2},
{c: 3, d: 4}
];
return {
getArr: function () {
return JSON.parse(JSON.stringify(arr));
}
};
})();
var myArr = m.getArr();
console.log(myArr);
myArr.pop();
console.log(m.getArr());Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |