2012-08-13 188 views
-2

的時候如果我寫這篇文章的JavaScript回報:停止功能

$('#SomeDiv').click(DoSomething); 

function DoSomething() { 

    if (SomeCondition === true) { 
    return false; 
    } 

    // more code here 
} 

不管我是否把return;或者return false;return true;代碼不會拋出異常並停止函數執行。

哪一個是最好的選擇?

+2

你想達到什麼目的? – xandercoded 2012-08-13 17:47:23

+0

如果SomeCondition爲true,我想停止該函數。 – frenchie 2012-08-13 17:47:50

+0

所有'return's將停止函數執行。從代碼的外觀來看,'false'看起來是合適的,但它都是語義。 – wanovak 2012-08-13 17:48:53

回答

2

如果這些是唯一的選擇,在這種情況下使用return;。 (看下面)

如果函數通常返回的東西(計算的東西,獲得一些價值等),那麼你肯定不想返回任何東西,因爲你可能會混淆調用者。

如果你的函數通常不會返回任何東西,那麼返回任何你喜歡的東西都不會有什麼壞處,但是它可能仍然會讓調用者感到困惑。

我個人寧願在if之後放一個else,而不是使用return ;.如果功能太大,只需將其拉回一點。

2

如果您只是想在某些條件下停止該功能,而不在乎它返回的是什麼,那麼選擇哪一個並不重要。如果你沒有使用函數的輸出,我只是使用一個簡單的return;語句來阻止它進一步執行。