簡體   English   中英

每個范圍的javascript var語句

[英]javascript var statement per scope

每個作用域看起來很多var是浪費字節和不良的代碼習慣。 我不知道如何解決我的代碼。 我應該如何根據JS良好做法來編輯以下幾行?

<script type="text/javascript">
// <![CDATA[
    var jump_page = '{LA_JUMP_PAGE}:';
    var on_page = '{ON_PAGE}';
    var per_page = '{PER_PAGE}';
    var base_url = '{A_BASE_URL}';
    var style_cookie = 'style';
    var style_cookie_settings = '{A_COOKIE_SETTINGS}';
    var onload_functions = new Array();
    var onunload_functions = new Array();

    /**
    * Find a member
    */
    function find_username(url)
    {
        popup(url, 760, 570, '_usersearch');
        return false;
    }

    /**
    * New function for handling multiple calls to window.onload and window.unload by pentapenguin
    */
    window.onload = function()
    {
        for (var i = 0; i < onload_functions.length; i++)
        {
            eval(onload_functions[i]);
        }
    };

    window.onunload = function()
    {
        for (var i = 0; i < onunload_functions.length; i++)
        {
            eval(onunload_functions[i]);
        }
    };

// ]]>
</script>

我總是建議將變量的作用域范圍僅限於需要它們的范圍。 使用全局變量是一個常見的錯誤源,因為您可能會發生沖突。

我有時會將代碼包裝在JavaScript閉包中,以避免將變量添加到全局范圍,因為全局范圍內的變量永遠不會符合垃圾回收的條件。

如果您希望避免污染全局window范圍,則可以將整個過程包裝如下:

(function() {
  "use strict";
  var onunload_functions = [];

  window.onunload = function()
  {
    for (var i = 0; i < onunload_functions.length; i++)
    {
      eval(onunload_functions[i]);
    }
  };

}());

此關閉將防止將隨機var變量添加到窗口/全局范圍。

暫無
暫無

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

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