⊗jsPmCxCM 440 of 505 menu

Mengikat Konteks Melalui Kaedah call dalam JavaScript

Jadi, kita telah memahami bagaimana sebenarnya this berfungsi. Sekarang mari kita lihat kaedah-kaedah yang membolehkan kita menentukan secara paksa, dalam konteks mana fungsi dipanggil (iaitu menentukan secara paksa, apa nilai this).

Kaedah pertama yang akan kita bincangkan, dipanggil call. Mari kita lihat cara kerjanya melalui contoh. Katakan kita mempunyai satu input:

<input id="elem" value="text">

Mari dapatkan rujukan kepada input ini dan simpan ia dalam pembolehubah elem:

let elem = document.querySelector('#elem');

Sekarang mari buat fungsi func, di dalamnya kita akan paparkan this.value:

function func() { console.log(this.value); }

Setakat ini, fungsi kita tidak tahu apa yang dirujuk oleh this. Jika kita mengikatnya melalui addEventListener, maka ya. Tapi kita tidak akan buat begitu. Sebaliknya kita hanya akan memanggil fungsi kita, dengan menyatakan bahawa this perlu sama dengan elem.

Ini dilakukan seperti berikut: func.call(elem). Kod ini setara dengan memanggil fungsi secara mudah func seperti ini: func(), cuma dengan syarat bahawa this sama dengan elem.

Jadi, sintaks untuk kaedah call adalah: fungsi.call(objek). Mari kita kumpulkan semua sekali:

let elem = document.querySelector('#elem'); function func() { console.log(this.value); // akan memaparkan value input } func.call(elem);

Diberi fungsi:

function func() { console.log(this.value); }

Diberi tiga input:

<input id="elem1" value="text1"> <input id="elem2" value="text2"> <input id="elem3" value="text3">

Dengan menggunakan kaedah call dan fungsi func paparkan value bagi setiap input.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak