Nesne yöntemleri
Kupanın adı ve fiyatı çoktan bir arada. Sayfanın hâlâ kupanın kendi işi eksik: etiketini kursun, sepet sayacını artırsın, alışveriş edene merhaba desin. Bu işlev nesnenin üzerinde durur. Adı yöntemdir.
Anahtarlardan ve listelerden sonra
Özellik dersinde bir alan eklendi, biri silindi, in ile soruldu, iç içe nesneye girildi ve Object.keys ile adlar alındı. Orada bir işlev çalışmadı. Burada bir özelliğin değeri kendisi bir işlevdir ve onu tutan nesneden çağrılır.
Yöntemle beş hareket
📊 Saklamak, çağırmak, kısa yazım, this, argüman
| Hareket | Sözdizimi | Ne elde edilir |
|---|---|---|
| saklamak | greet: function () { return "Hi"; } |
nesnenin üzerinde duran işlev |
| çağırmak | product.greet() |
işlev çalışır, sonucu alırsınız |
| kısa yazım | label() { return this.name; } |
aynı tür işlev, daha kısa yazılmış |
| this | yöntemin içinde this.name |
noktadan önceki nesne |
| argüman | cart.add(3) |
yalnızca bu çağrı için ek girdi |
Önce hareketin adını koyun, sonra satırı yazın. Saklamak işlevi çalıştırmaz. Kısa yazım yeni bir değer türü değildir. this var olmasını umduğunuz genel bir ürün adı değildir. Argüman bu çağrının girdisidir, ikinci bir nesne değil.
let product = {
name: "Mug",
greet: function () {
return "Hi";
}
};
console.log(typeof product.greet);
Değer bir işlev olabilir
name bir dizge tutar. greet bir işlev tutar. typeof product.greet sonucu "function" olur. Henüz bir şey çalışmadığı için Hi görünmez. Kupanın adı işlevin yanında durmaya devam eder.
let product = {
name: "Mug",
greet: function () {
return "Hi";
}
};
console.log(product.greet());
Parantez çalıştırma düğmesidir
product.greet() işlevin içine girer. Konsol Hi basar. Parantezi kaldırırsanız işleve bakarsınız, döndürdüğü değere değil. Nokta, çağrının hangi nesneye ait olduğunu söyler.
let product = {
name: "Mug",
label() {
return this.name;
}
};
console.log(product.label());
Kısa yazım yalnızca daha sıkı bir imladır
Küme parantezinin içinde label() { ... } işlevi label anahtarına koyar. greet: function () { ... } ile aynı tür özelliktir, yazması daha azdır. product.label() onu çalıştırır. Gövde this.name okur, konsol Mug gösterir.
let product = {
name: "Mug",
price: 8,
tag() {
return this.name + " — " + this.price;
}
};
console.log(product.tag());
Düz çağrıda this, noktadan önceki nesnedir
product.tag() şunu der: tag çalışsın ve this olarak product kalsın. O zaman this.name ile this.price o kupanın kendi alanlarıdır. Konsol Mug — 8 basar. Yöntemin içindeki çıplak name başka bir aramadır, özelliğin kendisi değildir. Çağrı artık object.method() biçiminde değilse this başka yere bakabilir — bu sonraki derstir. Bu sayfa düz çağrıda kalır.
let cart = {
count: 2,
add(extra) {
this.count = this.count + extra;
return this.count;
}
};
console.log(cart.add(3));
Yöntem bu çağrı için girdi alır
add, extra bekler. cart.add(3) sayı 3 verir, onu count değerine ekler ve yeni toplamı döndürür. Konsol 5 basar. Sepet güncellenmiş count değerini tutar. Argüman çağrı boyunca yaşar; siz kaydetmezseniz özellik olmaz.
İşe uyan hareketi seçin
İşlev nesnede mi yaşasın? Uzun biçim ya da kısa yazım, saklayın. Sonucu mu istiyorsunuz? () ile çağırın. Nesnenin kendi alanları mı lazım? Onları this üzerinden okuyun. Yalnızca bu çalıştırma için bir sayı mı gerek? Argüman geçirin. Object.keys önceki sayfada adları listeledi. Sonraki sayfa, çağrının biçimi değişince this ile kalır.
Yöntemin etiketini sayfaya koyun
Ürüne name, price ve tag verin. product.tag() sonucunu bir paragrafa yazın.
<!DOCTYPE html>
<html>
<head>
<title>object-methods — page</title>
</head>
<body>
<p id="line">…</p>
<script>
let product = {
name: "Mug",
price: 8,
tag() {
return this.name + " — " + this.price;
}
};
let box = document.getElementById("line");
box.textContent = product.tag();
</script>
</body>
</html>
Paragraf Mug — 8 gösterir. tag bu dizgeyi ürünün kendi alanlarından kurdu. Yalnızca name ya da price değiştirin, yenileyin, yeni satırı okuyun. Sonraki ders: this anahtar sözcüğü — çağrı düz object.method() olmadığında this nereye bakar.
Alıştırma adımları
greetüzerine bir işlev koyun ve o özelliğintypeofsonucunu yazdırın.product.greet()çağırın veHiokuyun.labeliçin kısa yazımı kullanın veproduct.label()yazdırın.tagöyle kurulsun kithis.nameilethis.pricetek dizge olsun.countdeğerini 2’den başlatın,add(3)çağırın ve5okuyun.- HTML demosunda yalnızca
nameya dapricedeğiştirin, yenileyin, paragrafı okuyun.
Sık kaymalar
product.greetifadesini()olmadan yazdırmak veHibeklemek- Kısa yazım
label() {}ifadesini dizge özelliği sanmak - Yöntemin içinde
this.nameyerine çıplaknameyazmak cart.add(3)sonrasındacountdeğerinin 2’de kalacağını sanmak- Yöntem çağırmak isterken
Object.keysyoluna sapmak - Bu sayfanın yöntemine ok işlevi koymak — sonraki ders, çağrı biçimi değişince
thisizini sürer
Özet
- Yöntem, özellik olarak saklanmış bir işlevdir
object.method()onu çalıştırır ve dönen değeri verir- Kısa yazım
name() {}aynı tür işlevi saklar - Düz çağrıda
this, noktadan önceki nesnedir - Parametre, o çağrının argümanını alır
- Yöntemin dizgesi sayfada bir satırı doldurabilir
- Sıradaki:
thisanahtar sözcüğü, çağrıobject.method()değilken
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek