2010-03-26 21 views

cevap

32

JavaScript bunu sağlar, herhangi bir sayıdaki bağımsız argümanı bir işleve iletebilirsiniz.

Onlar işlev çağrıldığında kullanılan argümanlar, üzerinde kullanılmış olan kaç argüman anlatır bir length özelliğinin değerlerini içeren sayısal özelliklere sahip bir dizi benzeri nesnedir arguments nesnede erişilebilir

function sum(/*arg1, arg2, ... , argN */) { // no arguments defined 
    var i, result = 0; 
    for (i = 0; i < arguments.length; i++) { 
    result += arguments[i]; 
    } 
    return result; 
} 
sum(1, 2, 3, 4); // 10 

arguments amacı bir dizi gibi görünebilir, ancak Object.prototype devralan bir düz nesne,: Eğer geç olabilir, örneğin işlev için bir referans aynı zamanda çağırma ve callee özelliği, Ancak, bunun üzerine Array yöntemlerini kullanmak istiyorsanız, bunları doğrudan'den çağırabilirsiniz. arasında length özelliğini kullanarak, bir işlev beklediğini kaç argüman Ayrıca

function test() { 
    var args = Array.prototype.slice.call(arguments); 
    return args.join(" "); 
} 
test("hello", "world"); // "hello world" 

, biliyor olabilir:, örneğin, ortak bir desen, bir gerçek dizi Dizisi slice yöntemini kullanmaktır almak fonksiyon nesnesi:

function test (one, two, three) { 
    // ... 
} 
test.length; // 3 
+0

Arayabileceğin güçlü bir JavaScript özelliğidir 'test.lengt Kullanıcının kaç argüman girdiğini test etmek için fonksiyon içerisinde mi? –

+0

veya '[] .slice.call (arguments);' kullanabilir – Mahi

4

Evet bunu - onun iyi uygulama ve

İlgili konular