我在项目中使用以下代码,该代码无效:
window.onload=function(){
//code here
};
Run Code Online (Sandbox Code Playgroud)
但如果我在最后添加()它的工作原理:
window.onload=function(){
//code here
}();
Run Code Online (Sandbox Code Playgroud)
我的问题是,有什么区别?()最后是什么?
我认为第一个不起作用,因为其他地方的"onload"已被称为杀死这个.
如果我总是使用第二个选项,它会有相同的行为吗?
Ily*_*lya 11
()在函数结束时,function在声明后立即调用它
window.onload=function(){
//code ehere
}() // function is called
Run Code Online (Sandbox Code Playgroud)
在这种情况下
window.onload=function(){
//code here
};
Run Code Online (Sandbox Code Playgroud)
函数将被调用
window.onload()
Run Code Online (Sandbox Code Playgroud)
当你拥有()像这样的lambda函数之后,这意味着你正在该行上立即调用该函数.
所以,例如,
var x=function() {
return 5;
}();
console.log(x);
Run Code Online (Sandbox Code Playgroud)
将在控制台中记录5.如果是
window.onload=function() {
//code here
}();
Run Code Online (Sandbox Code Playgroud)
该函数最有可能返回页面加载时调用的另一个函数.
例如,
window.onload=function() {
return function() {
console.log("Hello!");
};
}();
Run Code Online (Sandbox Code Playgroud)
将记录"你好!" 在页面加载时在控制台中.
| 归档时间: |
|
| 查看次数: |
237 次 |
| 最近记录: |