javascript - JavaScript/jQuery 中各种函数作用域/事件绑定(bind)的优缺点

标签 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>

哪种组合更好,为什么?

最佳答案

我认为不使用全局变量的最大争论来自网络协作的本质。如果您正在构建一个站点范围的脚本,并且您有一个团队(比如说另外两个人)在开发插件,那么您不希望您的变量被协作者覆盖或调用。此外,如果人们不断要求您向他们提供程序变量和函数的列表,则会减慢一切速度。

/* Private namespace */
(function () {

   var sum_1 = 10;
   var sum_2 = 20;

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

   myFunction(sum_1, sum_2);

})();

关于javascript - JavaScript/jQuery 中各种函数作用域/事件绑定(bind)的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23976714/

相关文章:

javascript - AngularJS 1.2 和 IE9 带有页面标题的奇怪行为

javascript - 选择其他下拉菜单时更改下拉菜单值

javascript - 如何在 typescript 中加载 Electron 模块

python - Newspaper3k : How to Scrape ONLY Article HTML? Python 的缺点

html - 使 block 级元素具有像内联元素一样的调整宽度?

javascript - 以 javascript 为中心的元素的问题

javascript - html 和 javascript 中的字母数字用户名

javascript - 在不使用 ID 或类的情况下使用 jQuery 修改 CSS

jQuery 滚动到滚动或 View 上的 div 顶部

javascript - 错误获取DIV ID