javascript - jQuery 函数作用域混淆

标签 javascript jquery

编辑我希望该功能可在全局范围内访问

为什么 myfunction0 在 dom 就绪调用中工作而 myfunction1 不起作用?

外部.js 文件

   (function($) {

    // functions defined like that works
    myfunction0 = function() {
      console.log("hello world");
    }

    // functions defined like that do not work
    function myfunction1() {
      console.log("hello world");
    }

    })(jQuery);

index.html

<script>
$(function () {
  myfunction0(); // works
  myfunction1(); // does not work not defined
})
</script>

第一个函数定义是否具有全局范围,而第二个函数定义仅具有本地“文件内”范围?

最佳答案

function myfunction1() { }

将位于其定义范围内。不是文件,而是它所包装的匿名函数。

myfunction0 = function() { }

声明一个变量(恰好是一个函数)。

由于没有附加 var,该变量具有全局作用域。

关于javascript - jQuery 函数作用域混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27821428/

相关文章:

jQuery:从字符串数组创建多个跨度

javascript - 如何将值从 javascript 传递到 iOS UIWebView

javascript - html5 游戏与 Canvas ,在 firefox 上的性能问题 (4)

javascript - 在 JavaScript 中定义只读属性

javascript - 获取点击事件上的插入符位置

javascript - 仅当 id 不存在时,jQuery 卸载警报

javascript - 像 jQuery 一样在函数结果上调用函数

javascript - jQuery UI 可排序 : Updating hidden input value for each item with new position

javascript - AngularJS 从模块加载作用域函数

javascript - 使用 Selenium 测试 jQuery 元素数据()?