我在一个项目中使用了以下不起作用的代码:
window.onload=function(){
//code here
};
但是如果我在结尾处添加(),它就会起作用:
window.onload=function(){
//code here
}();
我的问题是,有什么不同?最后的()是什么?
我假设第一个不起作用,因为在其他地方,"onload“已经被调用了killing this。
如果我总是使用第二个选项,它会有相同的行为吗?
发布于 2013-10-31 22:52:54
函数末尾的()
,在声明后立即调用此function
window.onload=function(){
//code ehere
}() // function is called
在这种情况下
window.onload=function(){
//code here
};
函数将在以下位置调用
window.onload()
发布于 2013-10-31 22:56:19
当你在这样一个lambda函数后面有()
的时候,这意味着你是直接在该行上调用这个函数。
举个例子,
var x=function() {
return 5;
}();
console.log(x);
将在控制台中记录5。在以下情况下
window.onload=function() {
//code here
}();
该函数很可能返回在页面加载时调用的另一个函数。
例如,
window.onload=function() {
return function() {
console.log("Hello!");
};
}();
将会记录"Hello!“当页面加载时,在控制台中。
发布于 2013-10-31 22:54:57
将function
分配给onload
window.onload=function(){
//code ehere
};
将function
的结果赋值给onload
window.onload=function(){
//code ehere
}();
https://stackoverflow.com/questions/19709710
复制相似问题