Javascript jQuery函数作用域混淆
编辑我希望该功能可以全局访问 为什么myfunction0在dom就绪调用中工作而myfunction1不工作 external.js文件Javascript jQuery函数作用域混淆,javascript,jquery,Javascript,Jquery,编辑我希望该功能可以全局访问 为什么myfunction0在dom就绪调用中工作而myfunction1不工作 external.js文件 (function($) { // functions defined like that works myfunction0 = function() { console.log("hello world"); } // functions defined like that do not work
(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>
$(函数(){
myfunction0();//工作正常
myfunction1();//不工作未定义
})
第一个函数定义是否具有全局作用域,而第二个函数定义仅具有局部“文件中”作用域?您没有使用
var
关键字声明myfunction0
,因此它已在全局作用域中声明<代码>函数声明与声明它们的范围相关联
如果您将var
关键字添加到您的myfunction0
(您应该这样做),您将看到这两个函数都不可访问:
var myfunction0 = function() {
console.log("hello world");
}
将位于定义它的范围的本地。不是文件,而是它所包装的匿名函数
myfunction0 = function() { }
声明一个变量(恰好是一个函数)
因为没有
var
附加,所以该变量具有全局作用域。因为myfunction0
是全局的。因为之前没有关键字“var”,所以不要隐式声明变量,始终使用var
关键字。@Vohuman您能详细说明一下吗@atmd这不是一个$(函数
myfunction0 = function() { }