函式的上下文物件this
封裝實參的物件arguments
arguments 物件實際上是所在函式的乙個內建類陣列物件
每個函式都有乙個arguments屬性,表示函式的實參集合,這裡的實參是重點,就是執行函式時實際傳入的引數的集合。arguments不是陣列而是乙個物件,但它和陣列很相似,所以通常稱為類陣列物件,以後看到類陣列其實就表示arguments。arguments物件不能顯式的建立,它只有在函式開始時才可用。
arguments還有屬性callee,length和迭代器symbol。
arguments同樣具有length屬性,arguments.length 為函式實參個數,可以用arguments[length]顯示呼叫引數
arguments物件可以檢測引數個數,模擬函式過載
第一點:arguments物件:可以在函式內訪問所有的引數,實參
例項**:
function f1()
f1(12,23,45); //12 34 45
第二點:在正常的模式下,arguments物件可以在執行的時候進行修改例項**:
function f2(a,b)
console.log(f2(4,6)); //30
第三點:在嚴格的模式下,arguments物件在執行的時候不可以修改,修改arguments物件不會影響到實際的函式引數注意: 'use strict' 是開啟嚴格模式
例項**:
function f3(a,b)
console.log(f3(3,6)); //9
第四點:通過arguments物件的length屬性,可以判斷實參的個數例項**:
function f4()
f4(2,3,4,5); //4
f4(1); //1
f4(); //0
第五點:arguments是乙個物件,不是陣列,轉換為陣列可以採用 slice 和 逐一填入新陣列例項**:
var arr = array.prototype.slice.call(arguments);
console.log(typeof arr);
var arr2 = ;
for(var i = 0; i第六點:arguments的callee屬性可以返回對應的原函式,達到呼叫自身函式的效果,但是在嚴格模式中是不適用的例項**:
var f5 = function()
var f6;
f5(); //返回原函式,呼叫自身
第一點:arguments.callee為引用函式自身。我們可以借用arguments.length可以來檢視實參和形參的個數是否一致例項**:
function add(a, b) else
}; add(11,22,33,44,66);
第二點:我們可以借用arguments.callee來讓匿名函式實現遞迴例項**:
var sum = function(n) else
} console.log("sum =", sum(5));
第三點:編寫乙個函式求傳入的若干個數字(不能用陣列顯示傳入)的和例項**:
function add()
return sum;
}; add(11,22,33,44,66);
關於 js中的arguments 物件
arguments物件包含了函式執行時的所有引數,arguments 0 就是第乙個引數,arguments 1 就是第二個引數,以此類推。這個物件只有在函式體內部,才可以使用。var f function one f 1,2,3 1 2 3 正常模式下,arguments物件可以在執行時修改。va...
JS中的arguments物件解析
在函式體內。識別符號arguments是指向實參物件的引用,實參物件是乙個類陣列物件 arguments 0 arguments.lengtharguments是什麼?答 1 arguments是收到的實參副本 在詞法分析中,首先按形參形成ao的屬性,值為undefined 當實參傳來時,再改動ao...
js物件 JS入門之arguments物件
每天一物件,js天天見,今天我們來看看arguments物件及屬性。arguments物件不能顯式建立,arguments物件只有函式開始時才可用。函式的 arguments 物件並不是乙個陣列,訪問單個引數的方式與訪問陣列元素的方式相同。索引 n 實際上是 arguments 物件的 0 n 屬性...