? Anda tidak bersendirian! Memegang nuansa beliau adalah seperti mempelajari kemahiran baru - ia memerlukan amalan, tetapi sebaik sahaja anda mendapatkannya, semuanya klik. this
, meneroka tingkah lakunya dalam konteks yang berbeza dengan contoh ilustrasi. Mari kita mulakan! this
Apa itu ? this
adalah kata kunci yang mewakili objek fungsi milik. Ia membolehkan fungsi yang boleh digunakan semula, dinamik dengan menentukan nilainya pada masa runtime. Konteks panggilan fungsi menentukan nilai this
, menjadikannya kuat dan kadang -kadang mengelirukan. this
Mata utama:
this
this
analogi dunia nyata:
Bayangkan sebagai pemandu pelancong muzium. Di Muzium Seni, panduan mewakili Muzium Seni; Di Muzium Sejarah, mereka mewakili Muzium Sejarah. Begitu juga, this
menyesuaikan diri dengan konteksnya. this
dalam senario yang berbeza: this
1. Konteks Global (mengikat lalai):
fungsi luar, merujuk kepada objek global. Ini berbeza -beza bergantung kepada persekitaran: this
this
window
node.js (tanpa mod ketat): this
{}
mod ketat:
console.log(this); // Browser: window object; Node.js: {}
kekal dalam penyemak imbas dan dalam node.js. this
window
undefined
Contoh:
2. Di dalam fungsi biasa:
'use strict'; console.log(this); // Browser: window object; Node.js: undefined
dalam fungsi biasa, nilai bergantung pada bagaimana fungsi dipanggil.
this
this
window
dengan mod yang ketat: this
undefined
3. Kaedah Objek Di dalam (mengikat tersirat):
function showThis() { console.log(this); } showThis(); // Without strict mode: Browser - window; Node.js - global object; With strict mode: undefined
Apabila fungsi adalah kaedah objek, menunjuk ke objek itu.
this
Contoh:
4. Fungsi anak panah:
const book = { title: 'JavaScript Mastery', showTitle: function() { console.log(this.title); } }; book.showTitle(); // Output: JavaScript Mastery
Fungsi anak panah tidak mempunyai mereka sendiri. Mereka mewarisi dari skop leksikal sekitar mereka.
Contoh: this
console.log(this); // Browser: window object; Node.js: {}
5. Fungsi Pembina (mengikat baru):
dengan kata kunci new
, this
merujuk kepada objek yang baru dibuat.
Contoh:
'use strict'; console.log(this); // Browser: window object; Node.js: undefined
6. Kelas:
dalam kelas ES6, this
berkelakuan sama dengan fungsi pembina.
Contoh:
function showThis() { console.log(this); } showThis(); // Without strict mode: Browser - window; Node.js - global object; With strict mode: undefined
7. call()
, apply()
bind()
this
call()
apply()
call()
bind()
this
const book = { title: 'JavaScript Mastery', showTitle: function() { console.log(this.title); } }; book.showTitle(); // Output: JavaScript Mastery
dalam pendengar acara,
biasanya merujuk kepada elemen yang mencetuskan peristiwa.
this
const techBook = { title: 'Advanced JavaScript', showTitle: function() { const arrowFunc = () => { console.log(this.title); }; arrowFunc(); } }; techBook.showTitle(); // Output: Advanced JavaScript
Pengikatan baru
menguasai
adalah penting untuk menulis JavaScript yang bersih dan konteks. Walaupun pada mulanya mencabar, memahami tingkah lakunya dalam senario yang berbeza memberi anda kuasa untuk menulis kod yang lebih berkesan dan boleh dipelihara. Amalan adalah kunci! Kongsi pengalaman anda dengan dalam komen di bawah! this
Atas ialah kandungan terperinci Memahami 'ini' dalam JavaScript dan kelakuannya dalam pelbagai senario. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!