一、Arguments物件
在JavaScript中,當一個函式被呼叫時,JS會為這個函式建立一個Arguments物件,區域性變數arguments自動初始化以便引用這個物件。 JS Arguments物件最主要的功能是:提供一種方法,用來確定傳遞給函式的引數個數並且引用未命名的引數。
Arguments物件裡面存放的函式的所有的引數,Arguments物件被定義為陣列的格式,通過Arguments我們能夠判斷函式引數的個數。可用Arguments[i]引用函式的引數,Arguments[0]是函式的第一個引數,Arguments.length引數的個數,但是Arguments不是陣列。
/JS Arguments物件屬性:
//(1)arguments.callee = 正在執行的函式的引用
//(2)arguments.length = 引數個數
//應用例項:
var fac = function(x){
//
//arguments.length = 函式呼叫時,引數個數。(實參)
//arguments.callee.length = 函式定義時,引數個數。(形參)
//
if(arguments.length == arguments.callee.length){
var x = parseInt(arguments[0]);
if(x < 2){
return 1;
}else{
return x * arguments.callee(x-1);
}
}else{
return 0;
}
}
document.writeln("fac(1) = " + fac(1));// fac(1) = 1
document.writeln("fac(2) = " + fac(2));// fac(2) = 2
document.writeln("fac(3) = " + fac("3"));// fac(3) = 6
document.writeln("fac(10,11) = " + fac(10,11));// fac(10,11) = 0
document.writeln("fac(20) = " + fac("20"));// fac(20) = 2432902008176640000
複製程式碼
二、Arguments物件的作用
通過Arguments我們可以實現一些高階的函式,例如柯里化函式,同時,我們可以實現函式傳遞多個引數。
希望各位技術同僚看到此文無論好壞留下自己的意見。如果覺得該文與你有共鳴,歡迎給出屬於我的第一個喜歡,順便po出+我的部落格,也希望大家能給出一顆star,簡直不要太可憐~~~