JavaScript Nesne Yöntemleri
JavaScript’te nesneler, anahtar-değer çiftlerinden oluşan veri yapılarıdır. Nesneler, sadece veri depolamakla kalmaz, aynı zamanda bu veriler üzerinde işlem yapmak için metotlar (yöntemler) da içerebilir. Bu makalede, JavaScript nesne yöntemlerini ve örneklerini detaylı bir şekilde inceleyeceğiz.
1. Nesne Yöntemleri Nedir?
Nesne yöntemleri, bir nesnenin davranışlarını tanımlayan fonksiyonlardır. Bu yöntemler, nesnenin özelliklerini kullanarak belirli işlemleri gerçekleştirir. Yöntemler, nesne içinde fonksiyon olarak tanımlanır.
Temel Yapı:
let nesne = {
özellik1: deger1,
özellik2: deger2,
metod: function() {
// Yapılacak işlemler
}
};
2. Nesne Yöntemi Tanımlama
Nesne yöntemleri, nesne içinde fonksiyon olarak tanımlanır. Bu fonksiyonlar, nesnenin özelliklerine erişmek için this
anahtar kelimesini kullanır.
Örnek:
let person = {
name: "Ali",
age: 25,
greet: function() {
return "Merhaba, ben " + this.name + "!";
}
};
console.log(person.greet()); // Çıktı: Merhaba, ben Ali!
Not: this
anahtar kelimesi, nesnenin kendisine referans verir.
3. Nesne Yöntemlerini Çağırma
Nesne yöntemleri, nesne üzerinden nokta notasyonu veya köşeli parantez notasyonu kullanılarak çağrılabilir.
Örnek:
console.log(person.greet()); // Nokta notasyonu
console.log(person["greet"]()); // Köşeli parantez notasyonu
4. Nesne Yöntemlerini Dinamik Olarak Ekleme
Nesne yöntemleri, nesne tanımlandıktan sonra da eklenebilir.
Örnek:
let car = {
brand: "Toyota",
model: "Corolla"
};
car.start = function() {
return this.brand + " " + this.model + " çalıştı!";
};
console.log(car.start()); // Çıktı: Toyota Corolla çalıştı!
5. Nesne Yöntemlerini Silme
Nesne yöntemleri, delete
operatörü kullanılarak silinebilir.
Örnek:
delete car.start;
console.log(car.start); // Çıktı: undefined
6. Nesne Yöntemlerinde this
Kullanımı
Nesne yöntemleri içinde this
anahtar kelimesi, nesnenin kendisine referans verir. Ancak, this
kullanımı bazı durumlarda beklenmeyen sonuçlar doğurabilir, özellikle yöntemler başka bir bağlamda çağrıldığında.
Örnek:
let person = {
name: "Ali",
greet: function() {
return "Merhaba, ben " + this.name + "!";
}
};
let greetFunction = person.greet;
console.log(greetFunction()); // Çıktı: Merhaba, ben undefined!
Çözüm: bind
, call
veya apply
metotları kullanılarak this
bağlamı korunabilir.
Örnek:
let boundGreet = person.greet.bind(person);
console.log(boundGreet()); // Çıktı: Merhaba, ben Ali!
7. Nesne Yöntemlerini Kısa Sözdizimi ile Tanımlama
ES6 ile birlikte, nesne yöntemleri daha kısa bir sözdizimi ile tanımlanabilir.
Örnek:
let person = {
name: "Ali",
greet() {
return "Merhaba, ben " + this.name + "!";
}
};
console.log(person.greet()); // Çıktı: Merhaba, ben Ali!
8. Nesne Yöntemlerini Prototip ile Tanımlama
Nesne yöntemleri, prototip üzerinden de tanımlanabilir. Bu, aynı türdeki nesnelerin yöntemleri paylaşmasını sağlar.
Örnek:
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.greet = function() {
return "Merhaba, ben " + this.name + "!";
};
let person1 = new Person("Ali", 25);
let person2 = new Person("Ayşe", 30);
console.log(person1.greet()); // Çıktı: Merhaba, ben Ali!
console.log(person2.greet()); // Çıktı: Merhaba, ben Ayşe!
9. Nesne Yöntemlerini call
, apply
ve bind
ile Kullanma
JavaScript, nesne yöntemlerini farklı bağlamlarda kullanmak için call
, apply
ve bind
metotlarını sunar.
a) call
Metodu
Yöntemi belirli bir this
bağlamı ile çağırır ve argümanları tek tek geçirir.
Örnek:
let person1 = { name: "Ali" };
let person2 = { name: "Ayşe" };
function greet() {
return "Merhaba, ben " + this.name + "!";
}
console.log(greet.call(person1)); // Çıktı: Merhaba, ben Ali!
console.log(greet.call(person2)); // Çıktı: Merhaba, ben Ayşe!
b) apply
Metodu
Yöntemi belirli bir this
bağlamı ile çağırır ve argümanları dizi olarak geçirir.
Örnek:
function introduce(job, country) {
return "Merhaba, ben " + this.name + ". Mesleğim " + job + " ve " + country + "'de yaşıyorum.";
}
console.log(introduce.apply(person1, ["Developer", "Türkiye"])); // Çıktı: Merhaba, ben Ali. Mesleğim Developer ve Türkiye'de yaşıyorum.
c) bind
Metodu
Yöntemi belirli bir this
bağlamı ile bağlar ve yeni bir fonksiyon döndürür.
Örnek:
let boundGreet = greet.bind(person1);
console.log(boundGreet()); // Çıktı: Merhaba, ben Ali!
10. Nesne Yöntemlerini Dizi Olarak Alma
Nesne yöntemleri, Object.getOwnPropertyNames()
veya Object.keys()
metotları kullanılarak bir dizi olarak alınabilir.
Örnek:
let methods = Object.getOwnPropertyNames(person).filter(function(key) {
return typeof person[key] === "function";
});
console.log(methods); // Çıktı: ["greet"]
Sonuç
JavaScript nesne yöntemleri, nesnelerin davranışlarını tanımlamak ve bu davranışları kullanmak için güçlü bir araçtır. Bu makalede, nesne yöntemlerini tanımlama, çağırma, dinamik olarak ekleme, silme ve this
bağlamını yönetme gibi temel kavramları örneklerle açıkladık. Nesne yöntemlerini etkili bir şekilde kullanarak, daha düzenli ve okunabilir JavaScript kodları yazabilirsiniz. Nesne yöntemleri, modern JavaScript geliştirmede vazgeçilmez bir yapı taşıdır.