


Javascript ialah fungsi tertib tinggi anda (aplikasi lanjutan)_kemahiran javascript
Dalam bahasa pengaturcaraan biasa, parameter fungsi hanya boleh menjadi jenis asas atau rujukan objek, dan nilai pulangan hanya boleh menjadi jenis data asas atau rujukan objek. Tetapi dalam Javascript, fungsi adalah warga kelas pertama dan boleh diluluskan sebagai parameter atau dikembalikan sebagai nilai pulangan. Fungsi tertib tinggi yang dipanggil ialah fungsi yang boleh mengambil fungsi sebagai parameter atau fungsi sebagai nilai pulangan. Kedua-dua situasi ini mempunyai banyak senario aplikasi dalam pembangunan sebenar Artikel ini adalah ringkasan beberapa senario aplikasi yang saya temui dalam kerja dan pengajian.
Fungsi panggil balik
Penggunaan semula kod adalah salah satu kriteria penting untuk mengukur aplikasi. Dengan mengekstrak logik perniagaan yang diubah dan merangkumnya dalam fungsi panggil balik, kadar penggunaan semula kod boleh dipertingkatkan dengan berkesan. Sebagai contoh, kaedah forEach yang ditambahkan pada tatasusunan dalam ES5 merentasi tatasusunan dan memanggil fungsi yang sama pada setiap elemen.
array = {}; array.forEach = function(arr, fn){ for (var i = 0, len = arr.length; i < len; i++) { fn(arr[i], i, arr); } }
Fokuskan fokus perniagaan pada fungsi panggil balik tanpa perlu menulis kod traversal lagi setiap kali.
Fungsi separa
Sebagai aplikasi biasa untuk mengeluarkan fungsi sebagai nilai pulangan, ia adalah fungsi separa. Apa yang dipanggil fungsi separa merujuk kepada penggunaan mencipta fungsi yang memanggil bahagian-fungsi lain yang parameter atau pembolehubahnya telah dipratetap. Bagaimanapun, melihat definisi, saya tidak faham untuk apa perkara ini. Mari kita lihat contoh dahulu Contoh fungsi separa yang paling tipikal ialah pertimbangan jenis.
Objek JavaScript mempunyai tiga atribut: atribut prototaip, atribut kelas dan kebolehlanjutan. (Pelajar yang tidak tahu harus kembali dan membaca buku Rhino, halaman: 138) Atribut kelas ialah rentetan, yang tidak disediakan secara langsung dalam Javascript, tetapi kita boleh menggunakan Object.prototype.toString untuk mendapatkannya secara tidak langsung. Fungsi ini sentiasa mengembalikan bentuk berikut:
[Kelas objek]
Jadi kita boleh menulis satu siri fungsi isType.
Kod adalah seperti berikut:
isString = function(obj){ return Object.prototype.toString.call(obj) === "[object String]"; } isNumber = function(obj){ return Object.prototype.toString.call(obj) === "[object Number]"; } isArray = function(obj){ return Object.prototype.toString.call(obj) === "[object Array]"; }
Kebanyakan kod dalam fungsi ini diulang Pada masa ini, fungsi tertib tinggi membuat penampilan pertama yang cantik:
isType = function(type) { return function(obj) { return Object.prototype.toString.call(obj) === "[object " + type + "]"; } } isString = isType('String'); isNumber = isType('Number'); isArray = isType('Array');
Jadi bentuk mengembalikan fungsi tersuai baharu dengan menyatakan beberapa parameter ialah fungsi separa.
Karipap
Karipap juga dipanggil penilaian separa. Fungsi kari akan mula-mula menerima beberapa parameter Selepas menerima parameter ini, fungsi itu tidak akan menilai serta-merta, tetapi akan terus mengembalikan fungsi lain Parameter yang baru dimasukkan disimpan dalam penutupan yang dibentuk oleh fungsi. Apabila fungsi benar-benar dinilai, semua parameter yang diluluskan akan digunakan untuk penilaian sekaligus.
var currying = function(fn) { var args = []; return function() { if (arguments.length === 0) { return fn.applay(this, args); } else { args = args.concat(arguments); return arguments.callee; } } }
Andaikan kita mengambil pengiraan perbelanjaan harian selama sebulan sebagai contoh:
var currying = function(fn) { debugger; var args = []; return function() { if (arguments.length === 0) { return fn.apply(this, args); } else { Array.prototype.push.apply(args, arguments); return arguments.callee; } } } cost = function(){ var sum = 0; for (var i = 0, len = arguments.length; i < len; i++) { sum += arguments[i]; } return sum; } var cost = currying(cost); cost(100); cost(200); alert(cost())
Pendikitan acara
Dalam sesetengah senario, peristiwa tertentu mungkin dicetuskan berulang kali, tetapi fungsi pemprosesan acara tidak perlu dilaksanakan setiap kali. Sebagai contoh, pengiraan logik yang kompleks dilakukan dalam peristiwa tetingkap.ubah saiz Jika pengguna kerap menukar saiz penyemak imbas, pengiraan yang kompleks akan memberi kesan yang serius kepada prestasi kadangkala pengiraan logik ini tidak perlu dicetuskan setiap kali rezise berlaku dan hanya pengiraan terhad diperlukan beberapa kali. Pada masa ini kita perlu mengabaikan beberapa permintaan acara berdasarkan tempoh masa. Lihat fungsi pendikit berikut:
function throttle(fn, interval) { var doing = false; return function() { if (doing) { return; } doing = true; fn.apply(this, arguments); setTimeout(function() { doing = false; }, interval); } } window.onresize = throttle(function(){ console.log('execute'); }, 500);
Dengan mengawal masa pelaksanaan fungsi, anda boleh mencapai keseimbangan sempurna antara bilangan pelaksanaan fungsi dan keperluan fungsian. Peristiwa lain ialah mousemove. Jika kita mengikat acara ini pada elemen DOM, peristiwa itu akan dicetuskan berulang kali apabila tetikus bergerak ke atas elemen tersebut.
Acara sudah tamat
Untuk beberapa acara yang boleh dicetuskan dengan kerap, kadangkala kami ingin melakukan beberapa siri operasi selepas acara itu tamat. Pada masa ini kita boleh menggunakan fungsi tertib lebih tinggi untuk melakukan pemprosesan berikut:
function debounce(fn, interval) { var timer = null; function delay() { var target = this; var args = arguments; return setTimeout(function(){ fn.apply(target, args); }, interval); } return function() { if (timer) { clearTimeout(timer); } timer = delay.apply(this, arguments); } }; window.onresize = throttle(function(){ console.log('resize end'); }, 500);
Jika acara dicetuskan semasa proses ini, kosongkan pemegang acara terakhir dan ikat semula masa pelaksanaan.
Rujukan:
《Penjelasan mendalam tentang nod》
"Corak Reka Bentuk Javascript dan Amalan Pembangunan"

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

PHP ialah bahasa sebelah pelayan yang digunakan secara meluas Salah satu sebab mengapa ramai pembangun web suka menggunakan PHP ialah perpustakaan fungsinya yang kaya dan sintaks fungsi yang ringkas dan mudah digunakan. Pengaturcaraan fungsional ialah paradigma pengaturcaraan yang merangkum data dan tingkah laku dengan baik, menjadikan kod lebih modular dan lebih mudah untuk diselenggara dan diuji. Dalam artikel ini, kami akan memperkenalkan cara menggunakan PHP untuk pengaturcaraan berfungsi. Asas Pengaturcaraan Fungsional Idea teras pengaturcaraan berfungsi adalah untuk menganggap fungsi sebagai warga kelas pertama Fungsi itu sendiri boleh diluluskan, dikembalikan, dan terdiri seperti pembolehubah.

Dalam Python, fungsi yang mengambil fungsi lain sebagai hujah atau mengembalikan fungsi sebagai output dipanggil fungsi tertib lebih tinggi. Mari lihat ciri-cirinya - fungsi boleh disimpan dalam pembolehubah. Fungsi ini boleh dihantar sebagai parameter kepada fungsi lain. Fungsi tertib tinggi boleh disimpan dalam bentuk senarai, jadual cincang, dsb. Fungsi boleh dikembalikan daripada fungsi. Mari kita lihat beberapa contoh − Berfungsi sebagai objek Terjemahan Bahasa Cina Contoh ialah: Contoh Dalam contoh ini, fungsi ini dianggap sebagai objek. Di sini, fungsi demo() diberikan kepada pembolehubah - #Creatingafunctiondefdemo(mystr):returnmystr.swapcase()#swappingthecase

Fungsi anak panah PHP: Cara mengendalikan panggilan bersarang bagi fungsi tertib tinggi, contoh kod khusus diperlukan Pengenalan: Dalam versi 7.4 PHP, konsep fungsi anak panah (fungsi anak panah) telah diperkenalkan dengan cara yang ringkas dan boleh diproses dengan elegan. Artikel ini akan memperkenalkan penggunaan asas fungsi anak panah dan menunjukkan cara mengendalikan panggilan bersarang bagi fungsi peringkat tinggi melalui contoh kod tertentu. 1. Apakah fungsi anak panah? Fungsi anak panah ialah ciri baharu yang diperkenalkan dalam versi PHP7.4 Ia adalah a

Fungsi tertib tinggi termasuk map(), filter(), reduce(), fungsi lambda, partial(), dsb. Pengenalan terperinci: 1. map(): Fungsi terbina dalam ini menerima fungsi dan satu atau lebih objek boleh lelar sebagai input, dan kemudian mengembalikan lelaran yang menggunakan fungsi input pada setiap elemen objek boleh lelar; Fungsi terbina dalam ini mengambil fungsi dan objek boleh lelar sebagai input, dan mengembalikan lelaran yang menghasilkan elemen tersebut yang menyebabkan fungsi input mengembalikan True, dsb.

Pengenalan kepada Python's World of Higher-Order Functions Jika anda ingin meningkatkan kemahiran pengaturcaraan Python anda dan menjana kod yang lebih ekspresif dan cekap, anda telah datang ke tempat yang betul. Fungsi dalam Python adalah lebih daripada sekadar blok kod khusus. Ia juga merupakan perkara yang berkuasa yang boleh dialihkan, dipindahkan, dan juga dijana secara dinamik. Fungsi tertib tinggi meningkatkan kepelbagaian ini dengan memproses fungsi lain. Artikel ini akan membincangkan secara meluas prinsip fungsi peringkat tinggi. Kami akan meneroka asas proses sebagai objek kelas pertama, menyelami contoh dunia sebenar bagi fungsi tertib tinggi dan menggalakkan kuasa fungsi lambda untuk kod yang jelas dan cantik. Model pengaturcaraan berfungsi dan kelebihannya apabila digunakan dalam Python juga akan dibincangkan. Selepas membaca artikel ini, anda akan mempunyai pemahaman yang kukuh tentang fungsi tertib tinggi dan mengetahui

Fungsi peringkat tinggi Golang menerima dan mengembalikan fungsi. Mereka terbahagi kepada dua kategori: menerima fungsi sebagai parameter: memproses fungsi lain atau melaksanakan program dinamik. Kembalikan fungsi sebagai nilai pulangan: Buat dan kembalikan fungsi yang boleh disimpan dan dilaksanakan kemudian.

Dengan populariti dan perkembangan bahasa Golang, semakin ramai pembangun mula cuba menggunakan idea pengaturcaraan berfungsi. Fungsi tertib tinggi di Golang membawa kemudahan besar kepada pengaturcaraan berfungsi dan digunakan secara meluas dalam pembangunan sebenar. Jadi, apakah senario aplikasi fungsi tertib tinggi di Golang? Seterusnya, kami akan menganalisis ini. Pemprosesan parameter fungsi dan nilai pulangan Di Golang, fungsi boleh digunakan sebagai parameter fungsi lain atau mengembalikan fungsi. Ini bermakna kita boleh menghantar fungsi sebagai parameter kepada yang lain

Fungsi tertib tinggi ialah fungsi fungsi yang sangat berguna dalam Python Fungsi tertib tinggi yang dipanggil adalah fungsi yang boleh digunakan untuk menerima fungsi lain sebagai parameter.
