ECMAScript arguments Nesnesi
- Önceki sayfa Fonksiyon genel bilgisi
- Sonraki sayfa Function nesnesi
arguments nesnesi
Fonksiyon kodunda, geliştiriciler özel bir nesne olan arguments kullanırParametre adlarını açıkça belirtmek gerekmezile onlara erişebilirsiniz.
Örneğin, sayHi() fonksiyonunda ilk parametre message'dir. Bu değeri arguments[0] kullanarak da erişebilirsiniz, yani ilk parametrenin değeri (ilk parametre 0 numaralı konumda, ikinci parametre 1 numaralı konumda, ve benzeri).
Bu nedenle, fonksiyonu yeniden yazmak için parametre adlarını belirtmek gerekmez:
function sayHi() { if (arguments[0] == "bye") { return; } alert(arguments[0]); }
Parametre sayısını tespit etme
Fonksiyonun parametre sayısını tespit etmek için arguments nesnesini kullanabilirsiniz, arguments.length özelliğini kullanarak.
Aşağıdaki kod, her seferinde fonksiyonun kullanılan parametre sayısını çıktılayacaktır:
function howManyArgs() { alert(arguments.length); } howManyArgs("string", 45); howManyArgs(); howManyArgs(12);
Yukarıdaki kod sırasıyla "2", "0" ve "1" görüntüleyecektir.
Açıklama:Diğer programlama dillerinden farklı olarak, ECMAScript, fonksiyona iletilen parametre sayısının fonksiyon tanımıyla eşit olup olmadığını doğrulamaz. Geliştirici tarafından tanımlanan tüm fonksiyonlar, herhangi bir hata olmadan herhangi bir sayıda parametre alabilir (Netscape belgelerine göre, en fazla 255 parametre alabilir), fazla parametreler göz ardı edilir. Eksik olan parametreler undefined olarak fonksiyona iletilir.
Fonksiyon yeniden yüklemesi simüle etme
Fonksiyona iletilen parametre sayısını belirlemek için arguments nesnesini kullanarak fonksiyon yeniden yüklemesi simüle edebilirsiniz:
function doAdd() { if(arguments.length == 1) { alert(arguments[0] + 5); } else if(arguments.length == 2) { alert(arguments[0] + arguments[1]); } } doAdd(10); // "15" çıktısı doAdd(40, 20); // "60" çıktısı
Sadece bir parametre olduğunda, doAdd() fonksiyonu parametreye 5 ekler. İki parametre varsa, iki parametreyi toplar ve toplamı döndürür. Bu yüzden, doAdd(10) çıktısı "15" ve doAdd(40, 20) çıktısı "60"dır.
Yüksek yükleme kadar iyi olmasa da, ECMAScript'in bu sınırlamasını aşmak yeterlidir.
- Önceki sayfa Fonksiyon genel bilgisi
- Sonraki sayfa Function nesnesi