簡體   English   中英

匿名Javascript函數還是存儲在變量中?

[英]Anonymous Javascript function or store within a variable?

調用javascript函數有多種方法,大多數情況下,我使用匿名函數,因為它可以在我喜歡的任何地方觸發。

我似乎無法理解為什么使用變量方法而不是匿名函數。 對我來說主要的缺點是由於起重問題。

任何人都可以解釋或提供一個真實的例子,何時將函數存儲在變量中?

如果要在多個位置使用同一函數,則將其存儲在變量中是有意義的。 這使您可以遵守DRY(請勿重復自己)原則。

假設我們有一個簡單的驗證功能:

function isPositive(val){
   return val > 0;
}

與其在需要驗證的任何地方都內聯此匿名函數,不如將函數存儲在變量中以備將來使用,這要容易得多。

var isPositive = function(val){  return val > 0;}

這為我提供了兩個主要好處。 首先,如果isPositive存在問題,我可以一處解決該問題,並且該函數的所有調用都將使用更新后的行為。 其次,它可以防止我在第100次重新鍵入代碼時將函數弄亂到代碼中的某個位置。

如果在變量中,則可以隨時隨地從任意位置訪問該函數。

如果要執行相同的操作,請在多個位置進行。 像這樣:

var renderPage = function() {
    // about 20 lines of render code        
}

$(window).on('resize', renderPage);
$('.my_btn').on('click', renderPage);

// render to initialize page
renderPage();

在這里不使用變量會很快變成一團糟:

$(window).on('resize', function() {
    // about 20 lines of render code
));

$('.my_btn').on('click', function() {
    // about 20 lines of render code
));

// about 20 lines of render code

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM