Javascript window.onload=function(){..}/window.onload=function(){..}()之间的差异;
我在一个项目中使用了以下不起作用的代码:Javascript window.onload=function(){..}/window.onload=function(){..}()之间的差异;,javascript,Javascript,我在一个项目中使用了以下不起作用的代码: window.onload=function(){ //code here }; 但是如果我在末尾加上()它会起作用: window.onload=function(){ //code here }(); 我的问题是,有什么区别?结尾的()是什么? 我认为第一个不起作用,因为在其他地方,“onload”已经被称为杀死这个 如果我总是使用第二个选项,它会有相同的行为吗?()在函数末尾,在声明后立即调用此函数 window.onload=functi
window.onload=function(){
//code here
};
但是如果我在末尾加上()它会起作用:
window.onload=function(){
//code here
}();
我的问题是,有什么区别?结尾的()是什么?
我认为第一个不起作用,因为在其他地方,“onload”已经被称为杀死这个
如果我总是使用第二个选项,它会有相同的行为吗?()
在函数末尾,在声明后立即调用此函数
window.onload=function(){
//code ehere
}() // function is called
在这种情况下
window.onload=function(){
//code here
};
函数将在之后调用
window.onload()
使用()
可以立即调用您定义的函数。在这种情况下,最好返回一个要分配给window.onload的函数。函数
被分配给onload
window.onload=function(){
//code ehere
};
window.onload=function(){
//code ehere
}();
功能的结果
分配给onload
window.onload=function(){
//code ehere
};
window.onload=function(){
//code ehere
}();
当您在lambda函数之后有()
时,这意味着您正在该行上立即调用该函数
那么比如说,
var x=function() {
return 5;
}();
console.log(x);
window.onload=function() {
return function() {
console.log("Hello!");
};
}();
将在控制台中记录5。就
window.onload=function() {
//code here
}();
该函数很可能返回另一个在页面加载时被调用的函数
比如说,
var x=function() {
return 5;
}();
console.log(x);
window.onload=function() {
return function() {
console.log("Hello!");
};
}();
加载页面时,将在控制台中记录“Hello!”。是否将()作为文档准备就绪?还是一份文件onload@themazzwindow.onload
将是onload
函数执行的结果。见furas'sanswer@themazz阅读此处,关于onload
global function@themazz您应该在页面加载之前声明window.onload
函数,例如在页面上的
标记中仅我或您从Ilya复制了第一个代码块?;)(注意“ehere”)。没有注意到我从答案而不是问题中复制代码:)