js传递参数给函数
按值传递一个参数给函数。即使按引用传递对象和数组时,如果直接在函数中用新值覆盖原先的值,在函数外并不反映新值。只有在对象的属性或者数组的元素改变时,在函数外才可以看出。
例如(使用 IE 对象模式):
// 本代码段破坏(覆盖)其参数,所以调用代码中反映不出变化。 functionClobber(param) { // 破坏参数;在调用代码中看不到 param = newObject(); param.message = "This will not work"; } // 本段代码改变参数的属性,在调用代码中可看到属性改变。 functionUpdate(param){ // 改变对象的属性; // 可从调用代码中看到改变。 param.message = "I was changed"; } // 创建一个对象,并赋给一个属性。 varobj = newObject(); obj.message = "This is the original"; // 调用 Clobber,并输出 obj.message。注意,它没有发生变化。 Clobber(obj);window.alert(obj.message); //仍然显示 "This is the original"。 // 调用 Update,并输出 obj.message。注意,它已经被改变了。 Update(obj);window.alert(obj.message); //显示 "I was changed"。
本文来源于 雨剑电脑,原文地址:http://www.expert58.com/news/2055.html