標籤:結果 callee style else 自己 ++ 個數 name 針對
1.arguments
arguments.length為函數實參個數,arguments.callee引用函數自身。
arguments他的特性和使用方法
特性:
arguments對象和Function是分不開的。因為arguments這個對象不能顯式建立,arguments對象只有函數開始時才可用。
使用方法:
雖然arguments對象並不是一個數組,但是訪問單個參數的方式與訪問數組元素的方式相同
例如:
arguments[0],arguments[1],。。。。。。。。arguments[n],
在js中 不需要明確指出參數名,就能訪問它們,例如:
function test() { var s = ""; for (var i = 0; i < arguments.length; i++) { alert(arguments[i]); s += arguments[i] + ","; } return s;}test("name", "age")輸出結果:name,age
我們知道每一個對象都有自己的屬性,arguments對象也不例外,首先arguments的訪問猶如Array對象一樣,用0到arguments.length-1來枚舉每一個元素。
下面我們來看看callee屬性,返回正被執行的 Function 對象,也就是所指定的 Function 對象的本文。callee 屬性是 arguments 對象的一個成員,僅當相關函數正在執行時才可用。
callee 屬性的初始值就是正被執行的 Function 對象,這允許匿名的遞迴函式。
var sum = function (n) { if (1 == n) { return 1; } else { return n + arguments.callee(n - 1); }}alert(sum(6)); // 21 = 6 + 5 + 4 + 3 + 2 + 1
通俗一點就是,arguments此對象大多用來針對同個方法多處調用並且傳遞參數個數不一樣時進行使用。根據arguments的索引來判斷執行的方法。
2.call
.
3.apply
.
function 之 arguments 、call 、apply