Rumah hujung hadapan web tutorial js 为什么不使用 JS 匿名函数

为什么不使用 JS 匿名函数

Jan 18, 2018 pm 01:13 PM
javascript kenapa fungsi

本文主要给大家分析了不使用js匿名函数的三大理由,匿名函数的作用是避免全局变量的污染以及函数名的冲突,关于js匿名函数的三大理由大家参考下本文,希望能帮助到大家。

匿名函数的基本形式为(function(){...})();

前面的括号包含函数体,后面的括号就是给匿名函数传递参数并立即执行之

匿名函数的作用是避免全局变量的污染以及函数名的冲突

无论你在什么时候读代码,您都必须注意到匿名函数。有时它们被称为 lambda,有时是匿名函数,不管怎样,我认为他们是不好使用的。

如果你不知道匿名函数是什么,这里有一个引语:

匿名函数是一种在运行时动态声明的函数。它们之所以被称为匿名函数是因为不同于普通函数,它们并没有函数名 。 — Helen Emerson, Helephant.com

匿名函数形式如下:

function () { ... code ... }
OR
(args) => { ... code .. }
Salin selepas log masuk

我今天尝试让大家理解通常情况下只有在绝对需要的情况下才使用匿名函数的想法。匿名函数不应该是首选,而且应该知道原因情况下使用。当理解这种想法之后,你的代码会变得更简洁,更容易维护,并且更容易跟踪bug。先从避免使用匿名函数的三个理由开始:

你写代码的时候, 无论你多么擅长敲代码, 总是会碰到错误。有时候,这些错误很容易被查出,有时候并不容易。

如果你知道这些错误来自哪里,那么错误很容易会被查出来。为了查出错误,我们使用这个被叫做堆栈轨迹的工具。如果你不了解 堆栈轨迹 ,goole给出了很棒的介绍。

假设现在有一个非常简单的工程:

function start () {
 (function middle () {
 (function end () {
  console.lg('test');
 })()
 })()
}
Salin selepas log masuk

上面代码里面有一个非常愚蠢的错误,拼写错误(console.log)。在小工程里面,这个拼写错误不是什么大问题。 如果这是一个有非常多模块非常大的工程的一小段,问题就大了。假设这个愚蠢的错误不是你犯的,那么新来的初级工程师将会在他休假之前把这个错误提交到代码库!

现在,我们必须追查。 使用我们精心命名的函数, 我们得到如下的堆栈跟踪:

谢谢你命名你的函数 ,初级开发者们! 现在我们可以轻松地追踪到这个bug。

但是..一旦我们解决了这个问题, 就会发现 还有另一个bug。 这次是一位更资深的开发人员介绍的。这个人知道 lambdas
结果他们偶然发现了一个bug,我们的工作就是追踪它。

下面是代码:

(function () {
 (function () {
 (function () {
  console.lg('test');
 })();
 })();
})();
Salin selepas log masuk

吃不吃惊,这名开发者也忘记了如何拼写console.log了!这也太巧合了吧!令人感到遗憾的是,他们都没有命名他们的函数。

那么控制台会输出什么呢?

好吧,我们至少还有行号,对吧?在这个例子中,看起来我们有大约7行代码。如果我们处理一大段代码会如何呢?比如一万行代码?行号的跨度如此之大该怎么办呢?如果代码被折叠后有没有一个代码地图文件,那么对行号的渲染是不是根本就是没有什么用了呢?

我想对这些问题的回答相当简单,答案就是:想这些会让你一整天都会过的相当糟心。

可读性

咦,我听说你还不信。你仍旧对你的匿名函数恋恋不舍,并且还从未发生过bug。那么我得向你道歉,你认为你的代码是完美的。让我们看看这个!

看看下面两段代码:

function initiate (arguments) {
 return new Promise((resolve, reject) => {
 try {
  if (arguments) {
   return resolve(true);
  }
  return resolve(false);
 } catch (e) {
  reject(e);
 }
 });
}
initiate(true)
 .then(res => {
  if (res) {
   doSomethingElse();
  } else {
   doSomething();
  }
 ).catch(e => {
   logError(e.message);
   restartApp();
   }
 );
Salin selepas log masuk

这是一个非常不正常的例子,但是我相信你已经明白我要说什么 了。我们的方法返回了一个promise,我们用这个promise对象/方法处理不同可能的 响应。

你也许会认为几段代码读起来并不难,但我认为它们可以变得更好!

如果我们去掉所有的匿名函数会怎样呢?

function initiate (arguments) {
 return new Promise(checkForArguments);
}
function checkForArguments (resolve, reject) {
 try {
 if (arguments) {
  return resolve(true); 
 }
 return resolve(false);
 } catch (e) {
 reject(e);
 }
}
function evaluateRes (res) {
 if (res) {
 doSomethingElse();
 } else {
 doSomething();
 }
}
function handleError (e) {
 logError(e.message);
 restartApp();
}
initiate(true)
 .then(evaluateRes)
 .catch(handleError);
Salin selepas log masuk

好,先讲清楚:这部分代码更长,但我认为其不仅仅是有更多的可读性!我们精心命名的函数与匿名函数不一样,只要我们一看到它们的名字就知道它们的功能是什么。这避免了在评估代码时的障碍。

这也有助于分清楚其中的关系。与创建一个方法、将其传递、然后运行逻辑不同,在第二个例子中的参数被给到了then,catch只是指向了发生所有事情的函数。

关于更具有可读性,我没有什么再能说服你的了。但是也许你还没被说服的话,我可以试一下最后的论据。

相关推荐:

js给按钮循环设置匿名函数的问题

常用匿名函数

js匿名函数使用与传参实例详解

Atas ialah kandungan terperinci 为什么不使用 JS 匿名函数. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Laman web aplikasi perisian pasaran percuma Laman web aplikasi perisian pasaran percuma Mar 05, 2025 pm 09:03 PM

Artikel ini memperkenalkan aplikasi perisian petikan aset digital percuma dan laman web yang dapat memberikan pelabur dengan maklumat penting seperti harga masa nyata, carta harga, jumlah urus niaga, turun naik, kedalaman pasaran dan maklumat berita untuk membantu para pelabur membuat keputusan yang tepat. Berbanding dengan perisian berbayar, perisian percuma mempunyai kelebihan tanpa kos, ciri yang kaya, dan operasi mudah. Artikel ini juga membimbing pengguna bagaimana memilih perisian pasaran yang betul, dan mengingatkan pengguna untuk memberi perhatian kepada sumber data, ketepatan maklumat dan mengelakkan pergantungan yang berlebihan, yang akhirnya membantu para pelabur lebih memahami trend pasaran aset digital. Ingin tahu bagaimana menggunakan perisian pasaran percuma dengan cekap? Baca teks penuh dengan cepat!

Port Login Exchange Coinbase 2025 Port Login Exchange Coinbase 2025 Mar 21, 2025 pm 05:51 PM

Panduan Masuk Keselamatan Coinbase: Bagaimana untuk mengelakkan tapak pancingan data dan penipuan? Phishing dan penipuan menjadi semakin berleluasa, dan sangat penting untuk mengakses portal log masuk rasmi Coinbase. Artikel ini menyediakan panduan praktikal untuk membantu pengguna mencari dan menggunakan portal log masuk rasmi terkini Coinbase untuk melindungi keselamatan aset digital. Kami akan meliputi cara mengenal pasti tapak pancingan data, dan bagaimana untuk log masuk dengan selamat melalui laman web rasmi, aplikasi mudah alih atau platform pihak ketiga yang dipercayai, dan memberikan cadangan untuk meningkatkan keselamatan akaun, seperti menggunakan kata laluan yang kuat dan membolehkan pengesahan dua faktor. Untuk mengelakkan kerugian aset kerana log masuk yang salah, pastikan anda membaca artikel ini dengan teliti!

Apakah laman web aplikasi perisian pasaran yang tidak mengenakan wang Apakah laman web aplikasi perisian pasaran yang tidak mengenakan wang Mar 05, 2025 pm 08:57 PM

Artikel ini menyediakan panduan komprehensif untuk perisian pasaran aset digital percuma untuk membantu anda memahami nadi pasaran tanpa sebarang kos. Dalam perdagangan aset digital, data pasaran yang tepat pada masanya dan tepat adalah penting, tetapi perisian berbayar mahal telah menggalakkan banyak orang baru. Nasib baik, banyak aplikasi dan laman web percuma menyediakan penjejakan harga masa nyata, kajian semula data sejarah, pemantauan volum transaksi dan fungsi lain untuk membantu anda memahami dinamik pasaran dan membuat keputusan yang tepat. Artikel ini akan memperkenalkan jenis, teknik pemilihan dan langkah berjaga -jaga perisian pasaran bebas secara terperinci, membolehkan anda melabur dengan selamat dan cekap dalam pasaran aset digital yang sangat berisiko.

Portal Log Masuk Laman Web Rasmi Versi terbaru Huobi Exchange Portal Log Masuk Laman Web Rasmi Versi terbaru Huobi Exchange Mar 05, 2025 pm 08:39 PM

Artikel ini memberikan maklumat terkini mengenai portal log masuk laman web rasmi Huobi Exchange dan menekankan pentingnya mendapatkan portal terkini, kerana pautan yang sudah lapuk boleh menyebabkan risiko tidak dapat diakses atau keselamatan. Artikel menunjukkan bahawa cara untuk mendapatkan pintu masuk terkini termasuk: pengumuman laman web rasmi, perkhidmatan pelanggan rasmi Huobi dan platform pihak ketiga yang dipercayai. Di samping itu, artikel itu juga mengingatkan pengguna untuk memberi perhatian untuk memeriksa nama domain, memeriksa sijil keselamatan, membolehkan pengesahan dua faktor, dan menjadi maklumat penipuan ketika melawat Huobi Exchange untuk memastikan keselamatan akaun dan keselamatan dana. Hanya dengan memilih saluran rasmi untuk log masuk ke Huobi Exchange, anda boleh menjalankan urus niaga aset digital dengan selamat.

Portal pendaftaran OUYI Exchange Web Versi OUYI Portal pendaftaran OUYI Exchange Web Versi OUYI Mar 20, 2025 pm 05:48 PM

Artikel ini memperincikan bagaimana untuk mendaftarkan akaun di laman web rasmi OUYI OKX Exchange dan memulakan perdagangan cryptocurrency. Sebagai pertukaran cryptocurrency terkemuka di dunia, Ouyi menyediakan pelbagai jenis perdagangan, pelbagai kaedah perdagangan dan jaminan keselamatan yang kuat, dan menyokong pengeluaran mudah dari pelbagai fiat dan cryptocurrency. Artikel ini merangkumi kaedah carian untuk pintu masuk pendaftaran laman web rasmi OUYI, langkah pendaftaran terperinci (termasuk pendaftaran e -mel/mudah alih, pengisian maklumat, pengesahan kod pengesahan, dll), serta langkah berjaga -jaga selepas pendaftaran (pensijilan KYC, tetapan keselamatan, dll.

Cara Mengesahkan Pencegahan Exchange 6x Cara Mengesahkan Pencegahan Exchange 6x Mar 14, 2025 pm 05:30 PM

Panduan Pengesahan Nama Sebenar 6x Exchange: Untuk memastikan keselamatan akaun, terima ganjaran cadangan dan turut serta dalam aktiviti platform, 6x Exchange Recropmender mesti melengkapkan pengesahan nama sebenar. Artikel ini memperkenalkan proses pengesahan secara terperinci, termasuk log masuk ke akaun, memasukkan halaman pengesahan nama sebenar, mengisi maklumat peribadi (nama, kewarganegaraan, dokumen identiti, dll.), Memuat naik gambar kad ID (gambar depan dan belakang dan pegang tangan), pengiktirafan muka (jika ada), dan mengemukakan semakan. Sila pastikan maklumat itu benar dan tepat, foto -foto itu jelas dan lengkap, dan tunggu dengan sabar untuk hasil semakan. Selepas melengkapkan pensijilan, anda boleh menikmati banyak faedah seperti ganjaran cadangan, tahap keselamatan akaun yang lebih tinggi, dan kadar kejayaan cadangan yang lebih baik. Sila rujuk panduan rasmi terkini 6x Exchange.

Apa yang perlu saya lakukan jika saya tidak dapat membayar jika saya membeli duit syiling? Mengapa membeli duit syiling beku? Apa yang perlu saya lakukan jika saya tidak dapat membayar jika saya membeli duit syiling? Mengapa membeli duit syiling beku? Mar 05, 2025 pm 06:45 PM

Apabila berdagang pada platform perdagangan mata wang digital, keadaan yang paling membimbangkan ialah penjual tidak melepaskan duit syiling selepas membeli mereka atau pembeli tidak dapat membayar. Kedua -dua situasi ini akan menjejaskan urus niaga seterusnya. Artikel ini akan memberi tumpuan kepada bagaimana pembeli tidak dapat membayar. Apa yang perlu saya lakukan jika saya tidak dapat membayar jika saya membeli duit syiling? Apabila menghadapi situasi di mana pembayaran tidak mungkin, anda harus terlebih dahulu menyemak kaedah pembayaran dan status akaun anda sendiri, dan kemudian sahkan sama ada rangkaian dan platform dagangan beroperasi secara normal. Sekiranya masalahnya tetap sama, menghubungi perkhidmatan pelanggan platform biasanya merupakan penyelesaian yang paling berkesan. Berikut adalah beberapa penyelesaian yang lebih terperinci: Masalah Kaedah Pembayaran: Sesetengah bank atau institusi kad kredit boleh menyekat urus niaga yang berkaitan dengan cryptocurrency, terutama pembayaran antarabangsa. Adalah disyorkan untuk cuba menghubungi bank atau syarikat kad kredit untuk sekatan dan mendapatkan pengangkatan sementara; atau menggunakan kaedah pembayaran lain.

Portal Terkini Log Masuk Binance Binance Exchange Binance Exchange Portal Terkini Log Masuk Binance Binance Exchange Binance Exchange Mar 05, 2025 pm 08:33 PM

Artikel ini bertujuan untuk membimbing pengguna untuk log masuk ke Binance Binance Exchange dengan selamat dan mengelakkan laman web phishing dan penipuan dalam talian. Oleh kerana persekitaran rangkaian yang kompleks, portal log masuk rasmi Binance boleh dikemas kini pada bila -bila masa. Artikel ini menyediakan tiga cara untuk mendapatkan portal Login Rasmi Binance yang selamat dan boleh dipercayai: Ikuti laman web rasmi Binance, aplikasi dan pengumuman media sosial; Di samping itu, artikel itu juga menekankan perkara-perkara keselamatan yang perlu diberi perhatian selepas pembalakan, seperti memeriksa nama domain, mengesahkan sambungan yang selamat, membolehkan pengesahan dua faktor, dan berhati-hati mengenai maklumat penipuan untuk memastikan keselamatan aset digital pengguna.

See all articles