Pelaksanaan dan penggunaan bind dalam JS
Pelaksanaan dan penggunaan bind dalam JS
Dalam JavaScript, bind ialah kaedah fungsi yang sangat berguna. Ia boleh mencipta fungsi baharu, sambil memastikan bahawa apabila fungsi dipanggil, ia mempunyai nilai ini khusus dan boleh melepasi parameter yang ditentukan.
Kaedah bind ditakrifkan seperti berikut:
function bind(fn, obj, ...args) { return function(...args2) { return fn.apply(obj, [...args, ...args2]); }; }
Kaedah bind di atas menerima tiga parameter: fn, obj dan args. fn ialah fungsi yang perlu terikat pada nilai ini, obj ialah objek yang ditunjuk apabila fungsi dipanggil, dan args ialah parameter yang dihantar ke fungsi fn.
Seterusnya, mari lihat contoh khusus untuk memahami penggunaan bind.
const person = { firstName: 'John', lastName: 'Doe', getFullName: function() { return this.firstName + ' ' + this.lastName; } }; const printFullName = function() { console.log(this.getFullName()); }; const logFullName = printFullName.bind(person); logFullName();
Dalam kod di atas, kami mencipta objek orang, yang mengandungi kaedah getFullName, yang mengembalikan nama penuh orang itu. Kemudian, kami mentakrifkan fungsi biasa printFullName, yang akan mencetak nama penuh pemanggil.
Walau bagaimanapun, memandangkan fungsi printFullName ditakrifkan dalam skop global, apabila kita memanggil printFullName secara langsung, ini akan menunjuk ke objek global (objek tetingkap dalam penyemak imbas), bukan objek orang.
Untuk menyelesaikan masalah ini, kami menggunakan kaedah bind untuk mengikat fungsi printFullName kepada objek orang, supaya apabila fungsi logFullName dipanggil, ini akan menunjuk ke objek orang, dengan itu mencetak nama penuh dengan betul.
Kaedah bind boleh menerima parameter tambahan dan menghantarnya ke fungsi asal. Sebagai contoh, kita boleh menukar fungsi logFullName untuk menerima parameter nama dan menyerahkannya kepada kaedah getFullName.
const person = { firstName: 'John', lastName: 'Doe', getFullName: function(name) { return this.firstName + ' ' + this.lastName + ' is ' + name; } }; const printFullName = function(name) { console.log(this.getFullName(name)); }; const logFullName = printFullName.bind(person, 'great'); logFullName();
Dalam kod di atas, kami lulus parameter nama 'hebat' dalam kaedah bind. Apabila fungsi logFullName dipanggil, parameter ini akan dihantar ke kaedah getFullName, dengan itu mencetak "John Doe hebat".
Untuk meringkaskan, kaedah bind adalah kaedah fungsi yang sangat berguna Ia boleh digunakan untuk mencipta fungsi baharu dan memastikan fungsi ini mempunyai nilai ini tertentu apabila dipanggil dan boleh melepasi parameter yang ditentukan. Dengan menggunakan kaedah bind dengan betul, kita boleh mengelakkan masalah yang ditunjukkan oleh ini dan secara fleksibel menghantar parameter kepada fungsi asal.
Atas ialah kandungan terperinci Pelaksanaan dan penggunaan bind dalam JS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



typedef struct digunakan dalam bahasa C untuk mencipta alias jenis struktur untuk memudahkan penggunaan struktur. Ia alias jenis data baharu kepada struktur sedia ada dengan menentukan alias struktur. Faedah termasuk kebolehbacaan yang dipertingkatkan, penggunaan semula kod dan pemeriksaan jenis. Nota: Struktur mesti ditakrifkan sebelum menggunakan alias itu mestilah unik dalam program dan hanya sah dalam skop di mana ia diisytiharkan.

Pengecualian nilai jangkaan pembolehubah dalam Java boleh diselesaikan dengan: memulakan pembolehubah menggunakan nilai nol menggunakan semakan dan tugasan;

Kelebihan penutupan JavaScript termasuk mengekalkan skop pembolehubah, membolehkan kod modular, pelaksanaan tertunda, dan keburukan pengendalian peristiwa termasuk kebocoran memori, peningkatan kerumitan, overhed prestasi dan kesan rantaian skop.

Arahan prapemproses #include dalam C++ memasukkan kandungan fail sumber luaran ke dalam fail sumber semasa, menyalin kandungannya ke lokasi yang sepadan dalam fail sumber semasa. Digunakan terutamanya untuk memasukkan fail pengepala yang mengandungi pengisytiharan yang diperlukan dalam kod, seperti #include <iostream> untuk memasukkan fungsi input/output standard.

Kitaran hayat penunjuk pintar C++: Penciptaan: Penunjuk pintar dicipta apabila memori diperuntukkan. Pemindahan pemilikan: Pindahkan pemilikan melalui operasi pemindahan. Keluaran: Memori dikeluarkan apabila penunjuk pintar keluar dari skop atau dikeluarkan secara eksplisit. Pemusnahan objek: Apabila objek runcing dimusnahkan, penunjuk pintar menjadi penunjuk tidak sah.

boleh. C++ membenarkan definisi dan panggilan fungsi bersarang. Fungsi luaran boleh menentukan fungsi terbina dalam, dan fungsi dalaman boleh dipanggil terus dalam skop. Fungsi bersarang meningkatkan enkapsulasi, kebolehgunaan semula dan kawalan skop. Walau bagaimanapun, fungsi dalaman tidak boleh mengakses pembolehubah tempatan fungsi luaran secara langsung, dan jenis nilai pulangan mesti konsisten dengan pengisytiharan fungsi luaran Fungsi dalaman tidak boleh rekursif sendiri.

Dalam JavaScript, jenis penunjuk ini termasuk: 1. Objek global 2. Panggilan fungsi; 4. Pengendali acara; Selain itu, penunjuk kepada ini boleh ditetapkan secara eksplisit menggunakan kaedah bind(), call(), dan apply().

Dalam Vue, terdapat perbezaan dalam skop apabila mengisytiharkan pembolehubah antara let dan var: Skop: var mempunyai skop global dan let mempunyai skop peringkat blok. Skop peringkat blok: var tidak mencipta skop peringkat blok, mari buat skop peringkat blok. Pengisytiharan Semula: var membenarkan pembolehubah diisytiharkan semula dalam skop yang sama, jangan biarkan.
