一、基本點
arguments
是一個類數組對象,包含着傳入函數中的所有參數。主要用途是保存函數參數,但這個對象還有一個名叫callee
的屬性
arguments
的 callee
屬性是一個指針,指向擁有這個arguments
對象的函數。
- 函數的內部屬性
arguments
的作用: 用於存儲調用函數的時候傳入的所有實參,
arguments
是一個類數組對象,他的元素個數取決於實參列表, 和形參無關;
arguments.callee()
表示所在函數的引用地址,表示調用函數本身。
function sum(){
console.log(arguments);
let result=0;
for(let i=0;i< arguments.length;i++){
result+=arguments[i]
}
console.log(result)
}
sum(10,30,50)
function fn(num1,num2){
arguments[1] = 10;
console.log(arguments[0] + num2);
}
fn(10,20);
分析:
每次執行fn()這個函數,num2的值都會被修改爲10 ,因爲arguments對象中的值會自動反映到num2,但是,num2和arguments[1]的內存空間是不同的。
如果fn()只傳入了一個參數,那麼修改arguments[1]是沒有任何效果的,因爲arguments的長度已經被確定爲1了,沒有第二個參數。
function fn22(num1,num2){
arguments[1]=10;
console.log('num2:',num2);
console.log(arguments[0]+num2)
}
fn22(10)
參考鏈接:https://www.cnblogs.com/yingyingh5/p/7684984.html