编辑我希望该功能可在全局范围内访问
为什么 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/