關於修改 'arguments' 變數
前言
在之前的 關於 Function 的 'arguments' 變數 提及了 'arguments' 變數 ,最近發現它遽然可以被賦值!賦值是什麼意思?在此把學習的過程做個紀錄。
內容
範例如下
function call( arg ){
console.log( arg );//1
console.log( arguments[ 0 ] );//1
//
arguments[ 0 ] = 99;
console.log( arg );//99
console.log( arguments[ 0 ] );//99
//
arg = 9999;
console.log( arg );//9999
console.log( arguments[ 0 ] );//9999
}
//
call(1);
'arguments' 變數是可以賦值的!賦值後連原本的變數也會跟著改變,對著 'arguments' 變數賦值 99 後,不論是 'arguments' 變數或是對應的引數都隨之改變,對著引數賦值 9999 ,引數與 'arguments' 變數也是憶起改變的。雖然我從不對引數賦值,本以為這個行為應該會報錯,但事實是這個行為是允許的。
參考資料
[ developer.mozilla.org ] The arguments object