ECMAScript中所有函数的参数传递都是按值传递的,无论参数是值类型还是引用类型的。过去我跟大多数人一样觉得跟传值类型相关。
自己写了一个测试的例子,确实如此
function add(a) { //array.push("C"); a.name = "wilson.fu"; a = new Object(); a.name = "Wilson"; } window.onload = function () { //var a = []; //a.push(1); //a.push("a"); //add(a); //console.log(JSON.stringify(a)); var obj = {}; add(obj); alert(obj.name);//是Wilson.fu 而不是Wilson }