1.函数参数
按值将参数传递给某个函数时,将会创建该参数的单独副本(一个仅存在于该函数内部的副本)。
即使按引用传递对象和数组,如果在该函数中用一个新值直接覆盖它们,则在该函数之外也不会反映新值。
只有对对象属性或数组元素的更改才会在函数外可见。
1 function Clobber(param) 2 { 3 param = new Object(); 4 param.message = "This will not work"; 5 } 6 7 function Update(param) 8 { 9 param.message = "I was changed"; 10 } 11 12 var obj = new Object(); 13 obj.message = "This is the original"; 14 15 Clobber(obj); 16 window.alert(obj.message); // "This is the original". 17 18 Update(obj); 19 window.alert(obj.message); // "I was changed".
原文:http://www.cnblogs.com/LovePointer/p/3761938.html