JavaScript - Object Methods

Hai, para para pengguna JavaScript masa depan! Hari ini, kita akan melihat dunia yang keramat JavaScript object methods. Ambil kayu kodming kamu (papan kekunci) dan mari kita melangkah dalam perjalanan yang menarik ini bersama-sama!

JavaScript - Object Methods

Apa Itu JavaScript Object Methods?

Sebelum kita mulakan melempar mantra dengan object methods, mari kita faham apa itu. Dalam istilah mudah, object methods adalah fungsi yang milik kepada object. Mereka seperti kebolehan khas yang dimiliki objek kita.

Mari kita lihat contoh asas:

let wizard = {
name: 'Merlin',
castSpell: function() {
console.log('Abracadabra!');
}
};

wizard.castSpell(); // Output: Abracadabra!

Di sini, castSpell adalah method objek wizard. Ketika kita panggil wizard.castSpell(), wizard kita menjalankan sihirnya!

Object Method Shorthand

Sekarang, mari kita belajar trick menarik. ES6 memperkenalkan cara yang lebih pendek untuk mendefinisikan methods dalam objek. Ia seperti jalan pintas magik untuk menulis methods objek!

let wizard = {
name: 'Merlin',
castSpell() {
console.log('Abracadabra!');
}
};

wizard.castSpell(); // Output: Abracadabra!

Lihat bagaimana kita menghapuskan bahagian : function? Ia lebih pendek dan lebih bersih, seperti buku sihir yang teratur!

Memperbaharui atau Menambah Method ke Object

Objek dalam JavaScript adalah fleksibel. Kita boleh menambah method baru atau memperbaharui method yang ada bahkan selepas objek dicipta. Ia seperti mengajarkan wizard kita sihir baru!

let wizard = {
name: 'Merlin'
};

// Menambah method baru
wizard.castFireball = function() {
console.log('Whoosh! Fireball pelancaran!');
};

wizard.castFireball(); // Output: Whoosh! Fireball pelancaran!

// Memperbaharui method yang ada
wizard.castFireball = function() {
console.log('Super fireball diaktifkan!');
};

wizard.castFireball(); // Output: Super fireball diaktifkan!

Dalam contoh ini, kita pertama-tama menambah method castFireball ke wizard kita, kemudian kita memperbaharui ia untuk melancarkan fireball yang lebih kuat!

Menggunakan Methods Bawaan

Objek JavaScript datang dengan beberapa sihir... maksud saya methods! Mari kita jelajahi beberapa daripadanya:

1. Object.keys()

Method ini mengembalikan array dari nama properti sendiri objek yang diberikan.

let spellBook = {
fireball: 'Memberi kerosakan api',
iceBeam: 'Menyembuhkan sasaran',
thunderbolt: 'Menerbak musuh'
};

console.log(Object.keys(spellBook));
// Output: ['fireball', 'iceBeam', 'thunderbolt']

2. Object.values()

Mirip dengan Object.keys(), tetapi mengembalikan array nilai properti yang boleh dienumerasi milik objek.

console.log(Object.values(spellBook));
// Output: ['Memberi kerosakan api', 'Menyembuhkan sasaran', 'Menerbak musuh']

3. Object.entries()

Method ini mengembalikan array pasangan [key, value] properti string yang boleh dienumerasi milik objek.

console.log(Object.entries(spellBook));
// Output: [
//   ['fireball', 'Memberi kerosakan api'],
//   ['iceBeam', 'Menyembuhkan sasaran'],
//   ['thunderbolt', 'Menerbak musuh']
// ]

Berikut adalah tabel yang menggabungkan methods ini:

Method Description Example
Object.keys() Mengembalikan array nama properti objek Object.keys(spellBook)
Object.values() Mengembalikan array nilai properti objek Object.values(spellBook)
Object.entries() Mengembalikan array pasangan [key, value] properti objek Object.entries(spellBook)

Kata Kunci 'this' dalam Object Methods

Sekarang, mari kita bicarakan konsep yang kuat tetapi kadang-kadang membingungkan: kata kunci this. Dalam methods objek, this merujuk kepada objek method itu sendiri. Ia seperti objek itu berkata "ini saya!"

let wizard = {
name: 'Merlin',
introduceYourself() {
console.log(`Hello, I am ${this.name}!`);
}
};

wizard.introduceYourself(); // Output: Hello, I am Merlin!

Dalam contoh ini, this.name merujuk kepada properti name objek wizard.

Contoh Praktis: Permainan Melempar Sihir

Mari kita gabungkan apa yang kita telah belajar dalam permainan kecil melempar sihir!

let wizard = {
name: 'Merlin',
mana: 100,
spells: {
fireball: 30,
iceBeam: 20,
heal: 50
},
castSpell(spell) {
if (this.mana >= this.spells[spell]) {
this.mana -= this.spells[spell];
console.log(`${this.name} casts ${spell}! Mana remaining: ${this.mana}`);
} else {
console.log(`${this.name} doesn't have enough mana to cast ${spell}!`);
}
}
};

wizard.castSpell('fireball'); // Output: Merlin casts fireball! Mana remaining: 70
wizard.castSpell('heal'); // Output: Merlin casts heal! Mana remaining: 20
wizard.castSpell('fireball'); // Output: Merlin doesn't have enough mana to cast fireball!

Dalam permainan ini, wizard kita boleh melempar sihir selagi mereka mempunyai cukup mana. Method castSpell memeriksa kos mana sihir, mengurangkan ia daripada mana wizard jika mungkin, dan memberikan maklum balas tentang tindakan.

Dan di sana kamu ada, para pengguna! Anda telah belajar asas JavaScript object methods. Ingat, latihan membuat sempurna, jadi terus cuba konsep ini. Sebelum long, anda akan menulis seperti seorang JavaScript wizard! Semoga kod anda bebas dari bug dan methods anda selalu mengembalikan output yang dijangkakan. Selamat berkoding!

Credits: Image by storyset