Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mengekalkan Rujukan \'ini\' dalam Fungsi Prototaip JavaScript?

Bagaimana untuk Mengekalkan Rujukan \'ini\' dalam Fungsi Prototaip JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-11-04 03:33:02257semak imbas

How to Preserve the 'this' Reference in JavaScript Prototype Functions?

Cara Mengekalkan Rujukan 'ini' dalam Fungsi Prototaip JavaScript

Dalam JavaScript, mengekalkan rujukan kepada 'ini' dalam fungsi prototaip boleh mencabar apabila skop berubah. Untuk menangani isu ini, pertimbangkan penyelesaian berikut:

Menggunakan Kaedah Bind

Kaedah bind membolehkan anda mencipta fungsi baharu yang mengekalkan rujukan 'ini' kepada objek asal. Penggunaan:

function.bind(object, argument1, argument2, ...);

Sebagai contoh:

MyClass.prototype.myfunc = function() {
  this.element.click(this.myfunc.bind(this));
};

Ini memastikan bahawa 'ini' merujuk kepada contoh MyClass apabila acara klik dicetuskan.

Mencipta Rujukan kepada 'ini'

Anda juga boleh membuat rujukan kepada 'ini' dalam fungsi prototaip:

MyClass.prototype.myfunc = function() {
  var myThis = this;
  ...
};

Ini membolehkan anda mengakses 'this.myValue' dalam fungsi bersarang. Walau bagaimanapun, anda mungkin perlu mencipta rujukan ini untuk setiap fungsi prototaip, yang boleh menyusahkan.

Menggunakan Fungsi Anak Panah

Fungsi anak panah mewarisi nilai 'ini' bagi konteks sekeliling, yang boleh memudahkan kod:

MyClass.prototype.doSomething = () => {
  // operate on the element
};

Mengelakkan Pembolehubah Global

Elakkan menggunakan pembolehubah global untuk memegang rujukan 'ini', kerana ini mencemarkan ruang nama global dan boleh membawa kepada konflik apabila berbilang objek MyClass wujud.

Contoh dengan jQuery Each

Untuk bekerja dengan setiap kaedah jQuery, anda boleh menggunakan kaedah bind untuk mengekalkan ' rujukan ini:

MyClass.prototype.doSomething = function() {
  this.elements.each(this.doSomething.bind(this));
};

Kesimpulan

Walaupun menggunakan corak prototaip secara amnya dianggap sebagai amalan yang baik, memahami cara mengekalkan rujukan 'ini' yang betul adalah penting untuk memelihara keadaan objek dan tingkah laku. Kaedah bind dan teknik lain boleh memberikan penyelesaian yang berkesan untuk cabaran ini.

Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Rujukan \'ini\' dalam Fungsi Prototaip 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