js 按值传递 VS 按引用传递:
- 基本数据类型是按值传递(包括基本数据类型的对象new String()…);
- 对象、数组是按引用传递(不包括基本数据类型的对象)
比如:
基本数据类型按值传递:
var num1 = 111;
var num2 = num1;
num2 = 222;
console.log("num1=" + num1 + "; num2=" + num2);
运行结果: num1=111; num2=222 (num1 的值没被修改)
对象、数组按引用传递:
var obj1 = {name : "beijing"};
var obj2 = obj1;
obj2.name = "shanghai";
console.log("obj1=" + JSON.stringify(obj1) + "; obj2=" + JSON.stringify(obj2));
运行结果: obj1={“name”:”shanghai”}; obj2={“name”:”shanghai”} (obj1 的值被修改)