DEV Community

Berkan Yıldırım
Berkan Yıldırım

Posted on

Javascript Nesnelere Metod Nasıl Eklenir ?

Image description

Metot Nedir?

JavaScript'in referans veri tiplerinden biri olan ve Türkçede "nesne" anlamına gelen object key-value (anahtar-değer) yapı mantığına sahip bir veri tipidir. Yani bir nesne oluştururken bu nesnemiz için bir veya birden fazla property (özellik) tanımlanabilir ve key-value mantığındaki gibi nesnemizin sahip olduğu özellikler için değerler verilmelidir.

Özelliklerin sahip olduğu değerler farklı veri tiplerinde olabileceği gibi bir fonksiyonu da işaret edebilir. Bir özellik eğer bir fonksiyonu işaret ediyorsa bu özelliğe metot denir.

Bir nesneye metot 2 şekilde eklenebilir. Bunlardan biri yukarda bahsedildiği üzere nesneye property olarak eklemek, bir diğeri ise prototype (prototip) fonksiyonu üzerinden eklemektir.

Metotu Özellik Olarak Eklemek
Metot, bir nesnenin oluşturulduğu sırada özellik olarak eklenip tanımlanabileceği gibi, önceden tanımlanmış bir nesneye sonradan da eklenebilir. Biz bu yazımızda ilk durumu ele alıp aşağıdaki örneği ona göre inceleyelim.

Örneğin; "cat" adında bir nesne oluşturalım ve bu nesnemiz "name", "age" özelliklerine, bu kedinin ismini ,yaşını ve çıkardığı sesi bize getirecek bir "introduce" metoduna sahip olsun.

var cat = {
  name: "Mr. Puff",
  age: 8,
  introduce: function(){
    return(`My name is ${this.name} ,I'm ${this.age} yo. And my sound meow  meow `);
  }
}
console.log(cat.introduce())
Enter fullscreen mode Exit fullscreen mode

Yukarıdaki gibi, metot tanımlanırken function() anahtar kelimesi kullanılarak yapılabileceği gibi EcmaScript6'nın arrow function yönteminin söz diziminden yararlanarak yapmak da mümkündür.

Fakat burada dikkat edilmesi gereken noktalardan biri arrow functionlar this erişimine sahip değildir. Yani aşağıdaki gibi bir kullanımda introduce fonksiyonu çalıştırıldığında çıktıda özellikler undefined (tanımlanmamış) olarak gözükecektir.

var cat = {
  name: "Mr. Puff",
  age: 8,
  introduce: () => {
    return(`My name is ${this.name} ,I'm ${this.age} yo. And my sound meow  meow `);
  }
}
console.log(cat.introduce())
Enter fullscreen mode Exit fullscreen mode

My name is ,I'm undefined yo. And my sound meow meow

Yukarıdaki kodumuzun çıktısı bu şekilde olacaktır.Yani bir metodun arrow function söz dizimi kullanılarak yapılmak istendiği bir durumda özelliklere nesnenin ismiyle erişilebilir. Buna göre yukarda arrow function kullanarak oluşturduğumuz metot içerisinde özelliklere erişim şu şekilde olacaktır;

var cat = {
  name: "Mr. Puff",
  age: 8,
  introduce: () => {
    return(`My name is ${cat.name} ,I'm ${cat.age} yo. And my sound meow  meow `);
  }
}
console.log(cat.introduce())
Enter fullscreen mode Exit fullscreen mode

Bu şekilde kullanımımızda undefined (tanımlanmamış) gözükmelerin önüne geçmiş olacağız.

Bu yazımda metotların ne olduğunu ve JavaScript nesnesi oluştururken bu nesneye property yöntemi ile nasıl metot ekleyeceğimizi anlattım.Bir sonraki yazımda görüşmek üzere.

Top comments (0)