Yazılım.
CevapSitesi.com Beta!
Çözüm Noktası
Facebook, Twitter, Google+ veya e-posta ile paylaşın.
| Sorular | Makaleler | Üyeler | Etiketler  | İletişim
Soru sormak ya da cevap vermek için;
giriş yapın veya üye olun.

Sosyal medya hesaplarınızla da giriş yapabilirsiniz.
0

JavaScript Fonksiyonlari: arguments Nesnesi

Bir fonksiyon içindeyseniz otomatik olarak o fonksiyonun parametre değerlerine ulaşabileceğiniz dizi benzeri arguments isimli bir nesneye sahip olursunuz.

Örnek:

function deneme(a, b, c) {
	console.log(arguments);
}

deneme(1, 2);

Çıktısı:

[1, 2]

Görüldüğü gibi arguments değişkeni hazır, doğrudan adını yazıp kullanabilirsiniz. İçerdiği şey ise fonksiyona gelen parametre değerlerinin bir dizisi ve diğer bazı değerlerdir.

Ayrıca dikkat edin, fonksiyon 3 parametre almaktadır. Ancak arguments sadece karşılğında değer bulunan parametreleri içermektedir.

arguments nesnesi bazı özelliklere sahiptir. 

arguments.length Özelliği:


Bu özellik fonksiyona gönderilen parametrelerin sayısını döndürür.

Örnek:

function deneme(a, b, c) {
	console.log(arguments.length);
}

deneme(1, 2);

Çıktısı:

2

arguments.callee Özelliği:


Bu özellik, içinde bulunduğu / o anda çalıştırılan fonksiyonun referansını içerir. Katı modda (strict mode) bu fonksiyon kullanılamaz.

Özellik, fonksiyonun adı olmadığı durumlarda (anonim fonksiyon) fonksiyonun kendisini çağırmak (recursion) için yararlı olabilir.

Daha önce verdiğimiz bir sayıya kadar sayıları toplayan kendini çağıran fonksiyon olarak verdiğimiz örneği isimsiz fonksiyon kullanarak yazalım:

var toplam = (function (sayi) {
                  if (sayi > 1)
                      return sayi + arguments.callee(sayi - 1);
                  return sayi;
              })(5);

console.log(toplam);

Örnekte yerinde çalıştırılan bir fonksiyon kullanılmıştır. Fonksiyon tanımının parantez içine alındığına dikkat edin. Daha sonra bu fonksiyonun yanına (5) yazılarak fonksiyon 5 parametre değeriyle çağırılmıştır.

Fonksiyon çalıştırıldıktan sonra kendi içinden arguments.callee özelliği kullanılarak kendini çağırmaktadır. Fonksiyonun ismi olmadığından böyle bir yol izlenmiştir.

arguments.caller Özelliği:

(Bu özellik eskimiştir.)

caller özelliği, fonksiyonu çağıran fonksiyonun referansını verir. Bu şekilde bir fonksiyonu çağıran fonksiyonun hangisi olduğunu öğrenebiliriz.

Örnek:

function kimCagirdi() {
    if (arguments.caller == null)
        console.log("Bir fonksiyondan çağırılmadı.")
    else
        console.log(arguments.caller + " çağırdı.");
}

function cagir() {
    kimCagirdi();
}

kimCagirdi();
cagir();

Eğer caller kullanılabiliyorsa çıktısı:

Bir fonksiyondan çağırılmadı.
cagir çağırdı.

Eğer caller kullanılamıyorsa çıktısı:

Bir fonksiyondan çağırılmadı.
Bir fonksiyondan çağırılmadı.

arguments Nesnesinin for ... of ile Kullanımı:

arguments nesnesi yinelenebilir (iterable) olduğundan, for ... of  yapısıyla beraber kullanılabilir. Buna bir örnek verelim:
function altAltaYaz() {
    for (var harf of arguments) {
      console.log(harf);
    }
}

altAltaYaz("N", "a", "b", "e", "r", "?");

Çıktısı:

N
a
b
e
r
?



JavaScript Fonksiyonları ile İlgili Makaleler: