⊗jsPmCxCM 440 of 505 menu

Binding Konteks dengan Metode call di JavaScript

Jadi, kita telah membahas bagaimana sebenarnya this bekerja. Sekarang mari kita lihat metode-metode yang memungkinkan kita untuk secara paksa menentukan dalam konteks apa sebuah fungsi dipanggil (yaitu secara paksa mengatakan, apa yang sama dengan this).

Metode pertama yang akan kita bahas bernama call. Mari kita lihat cara kerjanya dengan contoh. Misalkan kita memiliki sebuah input:

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

Mari kita dapatkan referensi ke input ini dan simpan dalam variabel elem:

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

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

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

Saat ini fungsi kita belum tahu, apa yang dirujuk oleh this. Seandainya kita mengikatnya melalui addEventListener, maka iya. Tapi kita tidak akan melakukannya. Sebagai gantinya kita hanya akan memanggil fungsi kita, dengan mengatakan bahwa this harus sama dengan elem.

Ini dilakukan seperti ini: func.call(elem). Kode ini setara dengan pemanggilan fungsi sederhana func seperti ini: func(), hanya saja dengan syarat bahwa this sama dengan elem.

Jadi, sintaks metode call adalah: fungsi.call(objek). Mari kita kumpulkan semua bersama:

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

Diberikan fungsi:

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

Diberikan tiga input:

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

Dengan menggunakan metode call dan fungsi func tampilkan value dari setiap input.

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