Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Membuat Kekunci Objek Rujukan Terbaik dalam Fungsinya Sendiri dalam Literal Objek JavaScript?

Bagaimana untuk Membuat Kekunci Objek Rujukan Terbaik dalam Fungsinya Sendiri dalam Literal Objek JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-11-28 01:48:11449semak imbas

How to Best Reference Object Keys Within Their Own Functions in JavaScript Object Literals?

JavaScript: Menggunakan Literal Objek untuk Merujuk Kekunci Dalam Fungsinya Sendiri

Masalah:
Apabila menggunakan objek literals dalam JavaScript, adalah perkara biasa untuk memasukkan fungsi yang beroperasi pada sifat objek. Walau bagaimanapun, terdapat dua cara untuk merujuk objek dalam fungsi tersebut: menggunakan ini atau secara eksplisit menggunakan nama literal objek. Artikel ini meneroka implikasi setiap pendekatan.

Penyelesaian:

Menggunakan Ini:

var obj = {
    key1: "it",
    key2: function(){return this.key1 + " works!"}
};
  • Menggunakan ini untuk merujuk objek dalam fungsi memastikan bahawa fungsi akan sentiasa mengakses objek yang betul, tidak kira bagaimana ia dipanggil.
  • Walau bagaimanapun, jika fungsi diekstrak daripada objek (mis., diperuntukkan kepada pembolehubah atau diluluskan sebagai hujah), ini mungkin tidak merujuk kepada objek seperti yang dijangkakan.

Menggunakan Nama Literal Objek:

var obj = {
    key1: "it",
    key2: function(){return obj.key1 + " works!"}
};
  • Menggunakan nama literal objek secara eksplisit (cth., obj) untuk merujuk objek dalam fungsi memastikan bahawa fungsi akan sentiasa mempunyai akses kepada objek.
  • Walau bagaimanapun, pendekatan ini boleh membawa kepada pengubahsuaian tidak sengaja atau tiruan objek. Jika rujukan lain kepada objek dibuat dan diberikan nilai yang berbeza, fungsi akan terus merujuk objek asal.

Isu Potensi:

  • Menggunakan Ini: Apabila fungsi diekstrak daripada objek, ini mungkin merujuk kepada objek global (tetingkap dalam pelayar) sebaliknya daripada objek yang dimaksudkan.
  • Menggunakan Nama Tersurat Objek: Apabila objek ditetapkan semula atau diubah suai, fungsi mungkin merujuk objek asal dan bukannya objek yang dikemas kini.

Cadangan:

  • Pilih pendekatan berdasarkan penggunaan yang dimaksudkan: Gunakan ini jika fungsi akan digunakan terutamanya sebagai kaedah objek. Gunakan nama literal objek jika fungsi mungkin akan diekstrak dan digunakan semula.
  • Gunakan ES6 const atau penutupan: Dalam ES6, gunakan const untuk mengelakkan objek daripada ditetapkan semula. Dalam ES5, gunakan penutupan untuk mencipta skop setempat dan simpan objek.
  • Ikat fungsi pada objek: Gunakan obj.key2 = obj.key2.bind(obj) untuk memastikan bahawa fungsi sentiasa merujuk objek yang betul.

Atas ialah kandungan terperinci Bagaimana untuk Membuat Kekunci Objek Rujukan Terbaik dalam Fungsinya Sendiri dalam Literal Objek JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn