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