2025年11月3日 星期一

關於 'arguments' 變數搭配 rest parameters 的問題

 關於 'arguments' 變數搭配 rest parameters 的問題

前言

   'arguments' 變數搭配 rest parameters 時, arguments.length 會如何變化?在此把學習的過程做個紀錄。


內容

  範例如下

function call( ...arg ){
  console.log( arguments.length);
}
//
function callMultiArg( a , b , ...arg ){
  console.log( arguments.length);
}
//
call();//0
call( 1 );//1
call( 1 , 2 );//2
call( 1 , 2 , 3 );//3
//
callMultiArg();//0
callMultiArg( 1 );//1
callMultiArg( 1 , 2 );//2
callMultiArg( 1 , 2 , 3 );//3
callMultiArg( 1 , 2 , 3 , 4 );//4


在 call() 的使用範例可以看到,雖然 arg 只是一個變數,但 arguments.length 會隨著傳入的數量改變,接著看 callMultiArg() 的使用範例,一樣的問題, arg 一樣不會被只視為一個變數,也就是說 rest parameters 雖然讓變數濃縮報一個陣列裡,但對 arguments.length 而言還是會依據傳入的數量來決定數值。


參考資料

[ developer.mozilla.org ] Rest parameters


相關文章與資料

關於 Function 的 'arguments' 變數

沒有留言:

張貼留言