JavaScript / jQuery中各种函数作用域/事件绑定的优缺点

时间:2014-06-01 04:16:56

标签: javascript jquery html

以下功能范围的优缺点是什么:

全球职能/内联JS

<script>
    function funcA() {
        //do something
    }
</script>
<button id="buttA" onclick="funcA();">Click Me</button>

全局函数/非内联JS

<script>
    function funcA() {
        //do something
    }
    $(function() {
        $('#buttA').on('click', funcA);
    });
</script>
<button id="buttA">Click Me</button>

非全局函数/非内联JS

<script>
    $(function() {
        $('#buttA').on('click', funcA);
        function funcA() {
            //do something
        }
    });
</script>
<button id="buttA">Click Me</button>

哪种组合更好,为什么?

1 个答案:

答案 0 :(得分:2)

我认为不使用全局变量的重要论点是网络协作的本质。如果您构建了一个站点范围的脚本,并且您有一个团队让我们说其他两个人在处理插件,那么您不希望协作者覆盖或调用您的变量。此外,让人们一直要求您向他们提供您的程序变量和函数列表,这将减慢一切。

/* Private namespace */
(function () {

   var sum_1 = 10;
   var sum_2 = 20;

   var myFunction = function (x, y) {
      return x * y;
   };

   myFunction(sum_1, sum_2);

})();