window.onload = function(){ . } / window.onload = function()

Differences between window.onload = function(){ .. } / window.onload = function(){ .. }();

本文关键字:window function onload      更新时间:2023-09-26

我在项目中使用以下代码不起作用:

window.onload=function(){
 //code here
};

但是如果我在末尾添加(),它可以工作:

window.onload=function(){
 //code here
}();

我的问题是,有什么区别?最后的 () 是什么?

我认为第一个不起作用,因为在其他地方,"加载"已经被称为杀死这个。

如果我总是使用第二个选项,它会有相同的行为吗?

在函数末尾(),在声明后立即调用此function

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!");
    };
}();

将在页面加载时在控制台中记录"Hello!"。

function被分配给onload

window.onload=function(){
 //code ehere
};

function的结果分配给onload

window.onload=function(){
 //code ehere
}();

使用(),将立即调用您定义的函数。在这种情况下,它最好返回一个要分配给 window.onload 的函数。