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())
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())
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())
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)