Tüm blog yazıları

JavaScript’te Metotlar: Fonksiyonların Objelerle Buluşması

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

eminbasbayan3 dk okuma
JavaScript’te Metotlar: Fonksiyonların Objelerle Buluşması

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:

jsx
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:

jsx
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:

jsx
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:

jsx
"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:

jsx
const geometri = {
  alanDikdortgen: function(kenar1, kenar2) {
    return kenar1 * kenar2;
  },
  cevreDikdortgen: function(kenar1, kenar2) {
    return 2 * (kenar1 + kenar2);
  }
};

Bu objeyi şu şekilde kullanabiliriz:

jsx
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.

jsx
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ı:

jsx
const ses = {
  konus: function() {
    return "Merhaba!";
  }
};

Yeni kısa yazım şekliyle aynı metodu şöyle tanımlayabiliriz:

jsx
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:

jsx
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.
JavaScript Classes ile pratik uygulamalar, metotlar arası iletişim ve gerçek dünya kod örnekleri
JavaScript Dersleri9 dk okuma

JavaScript Classes - Pratik Uygulamalar

JavaScript class'ları ile pratik uygulamalara geçin! Metotlar arası iletişimden constructor'da metot çağırmaya, kod tekrarını azaltmaktan gerçek dünya senaryolarına kadar class kullanımının inceliklerini keşfedin. Kendi alışveriş sepeti örneğinizle bilginizi pekiştirin.

Yazıyı oku
JavaScript class yapısını gösteren bir kod örneği, ES6 ile modern nesne oluşturma
JavaScript Dersleri9 dk okuma

JavaScript Classes

ES6 ile JavaScript'e gelen class yapısı sayesinde nesne oluşturmak artık çok daha kolay ve düzenli! Constructor function karmaşasından kurtulup, okunabilir ve yönetilebilir kodlar yazmak isteyenler için modern JavaScript'in temel taşı olan class'ları tüm detaylarıyla keşfedin. Bu rehberle nesne şabl

Yazıyı oku
JavaScript kodunda Constructor Function ve new keyword'ü ile nesne oluşturma örnekleri
JavaScript Dersleri8 dk okuma

Constructor Functions ve new Keyword

Factory Function'ların hafıza israfı sorununa Constructor Function'lar ve new keyword'ü ile son verin! Metotları paylaştırarak JavaScript objelerini daha verimli nasıl oluşturacağınızı, new'in perde arkasında neler yaptığını ve prototype sisteminin gücünü bu rehberde keşfedin.

Yazıyı oku

Çerez tercihlerin

Platformun çalışması için zorunlu çerezler kullanıyoruz. İzin verirsen anonim kullanım verilerini ölçüyoruz. Ayrıntıları incele