JavaScript’te programlama yaparken sıkça karşımıza çıkan iki temel yapı vardır: fonksiyonlar ve objeler. Bu iki yapı, birlikte kullanıldığında ortaya çok güçlü bir araç çıkar: metotlar. Bu makalede, metotların ne olduğunu, nasıl tanımlandığını ve nasıl kullanıldığını adım adım ele alacağız. Konuyu daha iyi kavrayabilmek için özgün örneklerle ilerleyeceğiz.
Fonksiyonlar ve Metotlar Arasındaki Fark Nedir?
Bir fonksiyon, belirli bir görevi yerine getiren ve tekrar tekrar çalıştırılabilen bir kod parçasıdır. Örneğin:
function carp(a, b) {
return a * b;
}
Bu fonksiyon her çağrıldığında iki sayıyı çarpar ve sonucu döner. Bu yapıyı bağımsız bir fonksiyon olarak tanımlayabiliriz.
Ancak eğer bu fonksiyonu bir objenin içinde tanımlarsak, artık bu fonksiyona metot denir. Temel fark, metotların bir objeye ait olmasıdır.
Metot Nedir?
Metot, bir objenin içinde bulunan ve objeye ait bir işlevi gerçekleştiren fonksiyondur. Bu tanımı daha iyi anlayabilmek için basit bir örnek yapalım:
const hesapMakinesi = {
topla: function(x, y) {
return x + y;
},
carp: function(x, y) {
return x * y;
}
};
Burada topla
ve carp
fonksiyonları, hesapMakinesi
adlı objeye ait olduğu için birer metot olarak adlandırılır.
Kullanımı ise oldukça basittir:
hesapMakinesi.topla(5, 3); // 8
hesapMakinesi.carp(4, 2); // 8
Her iki durumda da fonksiyon çağrılırken objenin ismi ile birlikte nokta (.) notasyonu kullanılır. Bu nokta notasyonu bize fonksiyonun objeye ait olduğunu belirtir.
JavaScript’teki Yerleşik Metotlar
JavaScript içerisinde tanımlı birçok objede yerleşik (hazır) metotlar vardır. Örneğin:
"kitap".includes("ki"); // true
[10, 20, 30].slice(1); // [20, 30]
Math.floor(3.7); // 3
"kitap".includes("ki")
ifadesinde includes
bir string metodudur.
[10, 20, 30].slice(1)
bir dizi metodudur.
Math.floor
ise Math
objesine ait bir metottur.
Bu metotlar da aslında JavaScript’in kendi içinde tanımlanmış fonksiyonlardır, ancak bir objeye ait oldukları için metot olarak değerlendirilirler.
Kendi Metotlarımızı Tanımlamak
Şimdi örnek olarak bir geometri
objesi oluşturalım ve içine çeşitli metotlar ekleyelim:
const geometri = {
alanDikdortgen: function(kenar1, kenar2) {
return kenar1 * kenar2;
},
cevreDikdortgen: function(kenar1, kenar2) {
return 2 * (kenar1 + kenar2);
}
};
Bu objeyi şu şekilde kullanabiliriz:
geometri.alanDikdortgen(4, 6); // 24
geometri.cevreDikdortgen(4, 6); // 20
Buradaki alanDikdortgen
ve cevreDikdortgen
fonksiyonları objeye ait olduğu için birer metottur.
Köşeli Parantez ile Metoda Erişim
Metotlara genellikle nokta ile erişilir (geometri.alanDikdortgen
gibi). Ancak farklı bir erişim yöntemi daha vardır: köşeli parantez kullanmak.
geometri["cevreDikdortgen"](5, 7); // 24
Bu kullanım tarzı daha çok dinamik durumlarda (örneğin metodun adı bir değişkene bağlıysa) tercih edilir. Ancak normal şartlarda okunabilirliği yüksek olan nokta notasyonu kullanılır.
Daha Kısa Metot Yazımı (Shorthand Syntax)
JavaScript’in son sürümlerinde, objelere fonksiyon eklerken kullanılan yazım daha da sadeleştirildi. Önceden şöyle yazılırdı:
const ses = {
konus: function() {
return "Merhaba!";
}
};
Yeni kısa yazım şekliyle aynı metodu şöyle tanımlayabiliriz:
const ses = {
konus() {
return "Merhaba!";
}
};
Her iki kullanım da aynıdır. Sadece ikinci yöntem daha okunaklı ve kısadır. Çağrılması da aynı şekilde olur:
ses.konus(); // "Merhaba!"
Özet
- Fonksiyon: Tek başına tanımlanmış bir işlemi yerine getirir.
- Metot: Bir objeye ait olan fonksiyondur.
- Metotlar, objeler üzerinden
objeninAdi.metotAdi()
şeklinde çağrılır.
- JavaScript içerisinde yerleşik birçok metot zaten mevcuttur.
- Biz de kendi objelerimiz için özel metotlar tanımlayabiliriz.
- Yeni sürümlerde metot tanımlamaları daha kısa şekilde yapılabilir.