Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript window.onload=function(){..}/window.onload=function(){..}()之间的差异;_Javascript - Fatal编程技术网

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@themazz
window.onload
将是
onload
函数执行的结果。见furas'sanswer@themazz阅读此处,关于
onload
global function@themazz您应该在页面加载之前声明
window.onload
函数,例如在页面上的
标记中仅我或您从Ilya复制了第一个代码块?;)(注意“ehere”)。没有注意到我从答案而不是问题中复制代码:)