测试
- 数字类型
var m = 1000;
var n = m;
n++;
(n); // 1001
(m); // 1000
- 字符串类型
var str = "qwer";
var newstr = str;
newstr += "tyu";
(newstr); // qwertyu
(str); // qwer
- 布尔类型
var bool = true;
var newbool = bool;
newbool = false;
(newbool); // false
(bool); // true
- 数组类型
var arr = [1,2,3,4,5];
var newarr = arr;
var y = (1,3);
(y); // [2, 3, 4]
(newarr); // [1, 5]
(arr); // [1, 5]
var arr = [1,2,3,4,5];
var newarr = [];
for(var x in arr){
(arr[x]);
}
var y = (1,3);
(y); // [2, 3, 4]
(newarr); // [1, 5]
(arr); // [1, 2, 3, 4, 5]
- 对象类型
var obj = {"name":"zhangsan","age":10,"sex":"nan"};
var newobj = obj;
= "lisi";
(newobj); // {name: "lisi", age: 10, sex: "nan"}
(obj); // {name: "lisi", age: 10, sex: "nan"}
var obj = {"name":"zhangsan","age":10,"sex":"nan"};
for(var x in obj){
newobj[x] = obj[x];
}
= "lisi";
(newobj); // {name: "lisi", age: 10, sex: "nan"}
(obj); // {name: "zhangsan", age: 10, sex: "nan"}
结论
综上测试所得:
数字、字符串、布尔类型的为原始类型,是值引用
数组、对象类型为地址引用
值引用 可以深拷贝
地址引用 循环到原始类型方可进行深拷贝