Java’da Metot Aşırı Yüklemeye (Method Overload) Karşı Javascript’te Metot Aşırı Yükleme

Java’da Metot Aşırı Yüklemeye (Method Overload) Karşı Javascript’te Metot Aşırı Yükleme




İlk olarak metot aşırı yükleme kavramının ne olduğunu açıklayarak başlayalım. Bir metodun aynı isimle fakat farklı parametre tipleriyle veya parametre sayısıyla tekrar yazılarak yeni bir metodun eklenmesidir. Örnek verecek olursak,

https://gist.githubusercontent.com/mtnaln/c12d4f419bb0f80f0e76fdf149a221e8/raw/c823ba505b33ea3c82f9e8d595eb1c7419e402fa/sumWithTwoParameters.java
int sum(int number1, int number2)
https://gist.githubusercontent.com/mtnaln/85158ad0dbd87887a9991179e53199bb/raw/473327d243a8ecea956724bc1ff6157225541558/sumWithThreeParameters.java
int sum(int number1, int number2, int number3)

Eğer iki parametre ile sum metodunu çağıracak olursak ilk fonksiyon, üç parametre ile çağıracak olursa ikinci fonksiyon çalışacaktır.

Bu tanım ve onunla ilgili vermiş olduğum örnek, benim gibi programlamaya Java veya C# gibi dillerle başlayanlar için fena bir tanım sayılmaz. Fakat Javascript’te metot aşırı yükleme bu şekilde yapılamaz. Aynı tip bir kodu Javascript’te çalıştırdığımızda sonucun ne olacağını inceleyelim.

https://gist.githubusercontent.com/mtnaln/10e97dbda61ce40e2342ad2cc680873e/raw/248174eb7951e0819e43ccdf3412b6100b2cc866/forJavascript.html

Yukarıdaki kodu çalıştırdığımız çıktı aşağıdaki gibidir.

NaN
6
6

Jav
ascript’te aynı isimde metot yazdığımızda sadece sonuncu geçerli olacaktır. Bundan dolayı,

- sum(1, 2)
 → eksik parametre olduğu için NaN (hata) verdi.

- sum(1, 2, 3)
 → son yazılan sum metodu üç parametre aldığı için bu metot düzgün sonuç veriyor.

- sum(1, 2, 3, 4)
 → son yazılan metot üç parametre aldığından dolayı sadece ilk üç parametreyi dikkate alacaktır ve son parametreyi yok sayacaktır. Bundan dolayı son parametre olan 4 değeri hesaba katılmayacaktır.

O halde, Javascript’te nasıl metot aşırı yüklemesi yapılabilir. Şimdi o kod örneğini inceleyelim.



https://gist.githubusercontent.com/mtnaln/b34ac7c629f1c121c0ce21499741c777/raw/22eea37a94e96334b29ab04120a900f24c4d9d34/forJavascriptAsCorrectForm.html


Yukarıdaki kod çalıştırıldığında sonuç aşağıdaki gibi olacaktır.
3
6
10

Invalid The Numbers of Parameters



Kodun doğru bir şekilde çalıştığını görmekteyiz. Her fonksiyonun içerisinde 
arguments adında bir dizi değişken mevcuttur. Bu değişken, metodun kaç tane parametre ile çağrıldığını ve ilgili parametrelerin değerlerini tutar.


arguments.length → metodun kaç parametre ile çağrıldığının sayısını verir.

arguments[0] → ilk parametrenin değeri

arguments[1] → ikinci parametrenin değeri

… şeklinde devam eder.

Başta yapmış olduğum tanımı şu şekilde değiştirmem gereklidir.

Metot aşırı yükleme, bir metodun aynı isimle kaç değişik şekilde tanımlandığı ile alakalı değildir. Metodun aynı isim kullanılarak kaç farklı parametre sayısı ile çalıştırılabildiği ile alakalıdır.

İyi günler,
Bol kodlamalar :)

Etiketler

Yorum Gönder

0Yorumlar
Yorum Gönder (0)