Dalam JavaScript, kaedah apply() ialah kaedah yang sangat berguna. Ia boleh digunakan untuk memanggil fungsi dan menetapkan nilai dan parameter fungsi ini. Artikel ini akan menulis kaedah apply() untuk lebih memahami cara ia berfungsi.
Pertama, mari kita fahami sintaks kaedah apply(). Ia memerlukan dua parameter: parameter pertama ialah fungsi yang akan dipanggil, dan parameter kedua ialah tatasusunan atau objek seperti tatasusunan yang mengandungi parameter untuk dihantar ke fungsi. Seperti yang ditunjukkan di bawah:
function myFunc(arg1, arg2) { console.log(this.name + arg1 + arg2); } const obj = {name: 'John'}; const args = [1, 2]; myFunc.apply(obj, args); // 输出:John12
Dalam contoh di atas, kami menggunakan kaedah apply() untuk memanggil fungsi myFunc(). Kami menetapkan nilai ini kepada obj dan menyimpan senarai argumen dalam tatasusunan args. Output fungsi myFunc() adalah hasil daripada menambah atribut nama obj kepada dua parameter.
Sekarang, mari tulis kaedah apply() dengan tangan. Kita boleh melakukan ini dengan mencipta fungsi yang dipanggil myApply(), yang mensimulasikan fungsi khusus kaedah apply(). Untuk mensimulasikan kaedah apply(), pertama sekali kita perlu menyemak sama ada fungsi yang diberikan wujud dan memastikan parameter kedua ialah objek seperti tatasusunan atau tatasusunan dan panjang objek itu bukan nol. Berikut ialah kod fungsi myApply():
Function.prototype.myApply = function(context, args) { if (typeof this !== 'function') { throw new TypeError('The current object is not a function.'); } if (!Array.isArray(args) && !((args.length !== null) && (args !== ''))) { throw new TypeError('The second argument is not an array or array-like object.'); } const fn = Symbol('fn'); context = context || window; context[fn] = this; const result = context[fn](...args); delete context[fn]; return result; }
Dalam kod di atas, kami mula-mula menyemak sama ada fungsi yang akan dipanggil wujud, dan membuang ralat jenis jika ia tidak wujud. Seterusnya kita menyemak sama ada parameter kedua ialah tatasusunan atau objek seperti tatasusunan, dan jika tidak, ralat jenis akan dilemparkan. Jika kedua-dua parameter adalah sah, kami mencipta Simbol unik sebagai sifat sementara objek konteks, mengikat fungsi pada objek konteks, memanggilnya dengan menghantar argumen args dan menyimpan hasilnya dalam pembolehubah hasil. Akhir sekali, kami mengalih keluar harta sementara ini daripada objek konteks dan mengembalikan hasilnya.
Seterusnya, kita boleh menggunakan fungsi myApply() untuk memanggil fungsi, seperti yang ditunjukkan dalam kod berikut:
function myFunc(arg1, arg2) { console.log(this.name + arg1 + arg2); } const obj = {name: 'John'}; const args = [1, 2]; myFunc.myApply(obj, args); // 输出:John12
Dalam contoh ini, kami menggunakan kaedah myApply() untuk Memanggil fungsi myFunc(). Kami menetapkan nilai ini kepada obj dan menyimpan senarai argumen dalam tatasusunan args. Output fungsi myFunc() adalah hasil daripada menambah atribut nama obj kepada dua parameter.
Dalam artikel ini, kami menulis kaedah apply() dengan tangan dan menggunakannya untuk memanggil fungsi. Kami melihat cara menyemak sama ada fungsi wujud dan cara mengelak daripada menghantar hujah haram. Dengan contoh ini, anda seharusnya dapat memahami dengan lebih baik cara kaedah apply() berfungsi, dan langkah-langkah yang diperlukan untuk menulisnya dengan tangan.
Atas ialah kandungan terperinci Fahami kaedah guna dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!