javascript 中复制函数的两种形式
Two forms of a copy function in javascript
复制对象通常有两种方法。例如,使用 C 模型,一种方法是传回一个新对象,第二种方法是将数据写入现有 object/address。这里有两种在 JS 中模拟的方法:
function copy_array(arr) {
// copy array and return existing array
const cp = [];
for(let i=0; i < arr.length; i++)
cp[i] = arr[i];
return cp;
}
function copy_to(arr, to_arr) {
// copy to existing object
// possible to write to a "reference object", something like `&to_arr`
to_arr = []
for(let i=0; i < arr.length; i++)
to_arr[i] = arr[i];
return to_arr;
const c = ['a','b','c'];
let arrc=copy_array(c);
const x=[];
copy_to(c, x);
是否可以通过这两种方式复制对象?或者无法复制到引用 object/address?
对于一个对象,您的操作方式基本相同,只是您使用 for (key in object)
来遍历 属性 个名称。
function copy_to(obj, to_obj) {
for (let key in obj) {
to_obj[key] = obj[key];
}
return to_obj;
}
复制对象通常有两种方法。例如,使用 C 模型,一种方法是传回一个新对象,第二种方法是将数据写入现有 object/address。这里有两种在 JS 中模拟的方法:
function copy_array(arr) {
// copy array and return existing array
const cp = [];
for(let i=0; i < arr.length; i++)
cp[i] = arr[i];
return cp;
}
function copy_to(arr, to_arr) {
// copy to existing object
// possible to write to a "reference object", something like `&to_arr`
to_arr = []
for(let i=0; i < arr.length; i++)
to_arr[i] = arr[i];
return to_arr;
const c = ['a','b','c'];
let arrc=copy_array(c);
const x=[];
copy_to(c, x);
是否可以通过这两种方式复制对象?或者无法复制到引用 object/address?
对于一个对象,您的操作方式基本相同,只是您使用 for (key in object)
来遍历 属性 个名称。
function copy_to(obj, to_obj) {
for (let key in obj) {
to_obj[key] = obj[key];
}
return to_obj;
}