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