mata teras
this
this
. window
this
this
anda boleh mengubah konteks call()
dan apply()
. Kaedah ini memanggil fungsi menggunakan nilai dan parameter yang diberikan. bind()
this
this
JavaScript adalah bahasa pengaturcaraan yang sangat baik. Kalimat ini mungkin telah kontroversial beberapa tahun yang lalu, tetapi pemaju telah menemui semula keindahan dan keanggunannya. Sekiranya anda tidak suka JavaScript, mungkin kerana: Anda menghadapi perbezaan atau masalah dengan API penyemak imbas - ini bukan kesalahan JavaScript itu sendiri.
biasanya merujuk kepada objek yang "memiliki" kaedah, tetapi ia bergantung kepada bagaimana fungsi dipanggil. this
this
this
Skop global
Jika tiada objek semasa, merujuk kepada objek global. Dalam pelayar web, ia adalah objek peringkat atas yang mewakili dokumen, lokasi, sejarah, dan beberapa sifat dan kaedah berguna yang lain.
this
window
Memanggil fungsi
window.WhoAmI = "我是 window 对象"; alert(window.WhoAmI); alert(this.WhoAmI); // 我是 window 对象 alert(window === this); // true
Jika anda memanggil fungsi, simpan objek global:
this
Memanggil kaedah objek
window.WhoAmI = "我是 window 对象"; function TestThis() { alert(this.WhoAmI); // 我是 window 对象 alert(window === this); // true } TestThis();
Apabila memanggil pembina objek atau mana-mana kaedahnya, merujuk kepada contoh objek-seperti mana-mana bahasa berasaskan kelas:
this
Gunakan
window.WhoAmI = "我是 window 对象"; function Test() { this.WhoAmI = "我是 Test 对象"; this.Check1 = function() { alert(this.WhoAmI); // 我是 Test 对象 }; } Test.prototype.Check2 = function() { alert(this.WhoAmI); // 我是 Test 对象 }; var t = new Test(); t.Check1(); t.Check2();
Pada dasarnya, call
dan apply
menjalankan fungsi JavaScript seolah -olah mereka adalah kaedah objek lain. Contoh mudah dapat dijelaskan lagi:
Satu -satunya perbezaan ialah call
mengharapkan bilangan parameter diskret, manakala apply
boleh lulus pelbagai parameter. Ini adalah penerangan ringkas
function SetType(type) { this.WhoAmI = "我是 " + type + " 对象"; } var newObject = {}; SetType.call(newObject, "newObject"); alert(newObject.WhoAmI); // 我是 newObject 对象 var new2 = {}; SetType.apply(new2, ["new2"]); alert(new2.WhoAmI); // 我是 new2 对象
call
Soalan Lazim Mengenai apply
Dalam JavaScript this
this
dalam JavaScript adalah kata kunci khas yang merujuk kepada konteks fungsi panggilan. Ia adalah rujukan kepada objek yang berfungsi. Nilai this
bergantung kepada bagaimana fungsi dipanggil. Ia penting kerana ia membolehkan anda mengakses sifat dan kaedah objek dalam fungsi, menjadikan kod anda lebih fleksibel dan boleh diguna semula. this
this
Nilai merujuk kepada objek pemilik. Apabila digunakan semata -mata, this
merujuk kepada objek global. Dalam fungsi, this
merujuk kepada objek global. Dalam satu peristiwa, this
merujuk kepada elemen yang menerima acara tersebut. this
this
Bolehkah anda menerangkan bagaimana
this
Dalam pengendali acara, , this
dalam fungsi onclick
akan merujuk kepada elemen butang. onclick
this
this
Fungsi anak panah mengendalikan adalah leksikal terikat. Ini bermakna ia menggunakan this
dalam kod yang mengandungi fungsi anak panah. Oleh itu, untuk fungsi anak panah, this
mengekalkan nilai this
yang melampirkan konteks leksikal. this
this
Apakah perbezaan antara
this
this
Dalam banyak bahasa pengaturcaraan berorientasikan objek, ditentukan oleh konteks pelaksanaan dan cara fungsi dipanggil, dan bukannya oleh lokasi definisi fungsi. this
this
bagaimana mengubah konteks
this
anda boleh mengubah konteks , call()
dan apply()
. Kaedah bind()
dan this
memanggil fungsi menggunakan nilai dan parameter yang diberikan. Perbezaan antara kedua -duanya ialah call()
menerima senarai parameter, manakala apply()
menerima array parameter tunggal. Kaedah this
mengembalikan fungsi baru yang membolehkan anda mengikat fungsi ke objek tertentu. call()
Apakah nilai apply()
dalam pembina? bind()
this
, this
Bagaimana anda berkelakuan dalam mod yang ketat? Dalam mod yang ketat, nilai this
kekal pada set nilai apabila memasuki konteks pelaksanaan. Sekiranya tidak ditentukan, ia tetap tidak ditentukan. Ini berbeza daripada mod bukan tegas, di mana this
ingkar ke objek global jika tidak ditentukan.
this
Bolehkah ia menjadi batal atau tidak ditentukan? Ya, this
boleh menjadi batal atau tidak ditentukan, terutamanya apabila memanggil fungsi dalam mod yang ketat atau menggunakan call()
atau apply()
dengan undefined atau null sebagai hujah pertama.
Objek Global dalam JavaScript berbeza mengikut persekitaran. Dalam penyemak imbas web, objek global adalah objek window
. Dalam node.js, objek global adalah objek global literal. Apabila this
digunakan di luar sebarang fungsi atau kaedah, ia merujuk kepada objek global.
Atas ialah kandungan terperinci Apa itu ' ini ' Dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!