我在一个项目中使用了以下不起作用的代码:
window.onload=function(){
//code here
};
但是如果我在末尾添加 () 它可以工作:
window.onload=function(){
//code here
}();
我的问题是,有什么区别?() 结尾是什么?
我认为第一个不起作用,因为在其他地方“onload”已经被称为杀死这个。
如果我总是使用第二个选项,它会有相同的行为吗?
我在一个项目中使用了以下不起作用的代码:
window.onload=function(){
//code here
};
但是如果我在末尾添加 () 它可以工作:
window.onload=function(){
//code here
}();
我的问题是,有什么区别?() 结尾是什么?
我认为第一个不起作用,因为在其他地方“onload”已经被称为杀死这个。
如果我总是使用第二个选项,它会有相同的行为吗?
()
在函数结束时,function
在声明后立即调用 this
window.onload=function(){
//code ehere
}() // function is called
在这种情况下
window.onload=function(){
//code here
};
函数将在之后调用
window.onload()
当你有()
这样的 lambda 函数时,这意味着你在该行立即调用该函数。
所以,例如,
var x=function() {
return 5;
}();
console.log(x);
将在控制台中记录 5。如果是
window.onload=function() {
//code here
}();
该函数很可能返回另一个在页面加载时被调用的函数。
例如,
window.onload=function() {
return function() {
console.log("Hello!");
};
}();
将记录“你好!” 页面加载时在控制台中。
function
被分配到onload
window.onload=function(){
//code ehere
};
结果function
分配给onload
window.onload=function(){
//code ehere
}();
使用()
您定义的函数会立即调用。在这种情况下,它最好返回一个分配给 window.onload 的函数。