Rumah > hujung hadapan web > tutorial js > Bagaimanakah \'ini\' berkelakuan berbeza dalam jQuery dan JavaScript?

Bagaimanakah \'ini\' berkelakuan berbeza dalam jQuery dan JavaScript?

Patricia Arquette
Lepaskan: 2024-10-26 03:44:03
asal
824 orang telah melayarinya

How does

Memahami "ini" dalam jQuery dan JavaScript

"ini" ialah kata kunci yang sangat serba boleh dalam JavaScript dan jQuery. Maksudnya berbeza-beza bergantung pada konteks di mana ia digunakan.

"ini" dalam jQuery

Dalam jQuery, "ini" biasanya merujuk kepada elemen DOM yang dimanipulasi oleh fungsi yang dipanggil. Contohnya, dalam pengendali panggilan balik acara:

$("div").click(function() {
    // Here, "this" refers to the DOM element for the clicked div.
    this.style.color = "red";
});
Salin selepas log masuk

"ini" dalam JavaScript

Dalam JavaScript, makna "ini" ditentukan oleh konteks panggilan (bukan konteks definisi):

  • Kaedah objek: Apabila dipanggil sebagai sifat objek, "ini" merujuk kepada objek itu.
var obj = {
    foo: function() {
        alert(this.firstName);
    },
    firstName: "Fred"
};
Salin selepas log masuk
  • Penggunaan fungsi: Jika fungsi dipanggil tanpa terikat pada objek, "ini" lalai kepada objek global (biasanya "tetingkap" dalam penyemak imbas).
function foo() {
    alert(this.firstName);
}
Salin selepas log masuk
  • Function.call(): Kaedah ".call()" membenarkan anda untuk menyatakan secara eksplisit nilai "ini" untuk panggilan fungsi.
foo.call(obj, 42, 27);
Salin selepas log masuk
  • Function.apply(): Serupa dengan ".call()", tetapi menerima pelbagai argumen dan bukannya argumen individu.
foo.apply(obj, [42, 27]);
Salin selepas log masuk

Pertimbangan khas:

  • Dalam mod ketat ES5, "ini" boleh mempunyai sebarang nilai, tidak seperti mod longgar di mana ia lalai kepada "objek."
  • jQuery menggunakan pelaksanaan "ini" yang sedikit berbeza dalam kaedah ".each"nya.
  • Memahami "ini" secara menyeluruh memerlukan penerokaan yang lebih mendalam tentang konteks panggilan JavaScript dan skop objek.

Atas ialah kandungan terperinci Bagaimanakah 'ini' berkelakuan berbeza dalam jQuery dan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan