解释这个JavaScript onload函数
下面是一个在文档加载时注册函数的示例(大部分来自JavaScript:Definitive Guide): 我对行解释这个JavaScript onload函数,javascript,javascript-events,Javascript,Javascript Events,下面是一个在文档加载时注册函数的示例(大部分来自JavaScript:Definitive Guide): 我对行onLoad(function(){onLoad.load=true;})感到困惑。我知道这是自调用,但再次使用函数名让我感到困惑。为什么需要它?我发现如果我只执行(function(){onLoad.load=true;})则输出也是相同的 最后,我可以使用以下方法获得相同的输出: function myfunc() { console.log("Hello, world!
onLoad(function(){onLoad.load=true;})感到困惑代码>。我知道这是自调用,但再次使用函数名让我感到困惑。为什么需要它?我发现如果我只执行(function(){onLoad.load=true;})代码>则输出也是相同的
最后,我可以使用以下方法获得相同的输出:
function myfunc() {
console.log("Hello, world!");
}
window.onload = (function() {window.setTimeout(myfunc, 0);});
我的代码如何更好/更差
提前谢谢
我对行onLoad(function(){onLoad.load=true;})感到困惑代码>。我知道这是自调用,但再次使用函数名让我感到困惑
这不是一个自我调用
它是用一个参数(函数表达式)调用函数onLoad
(以前定义的)
最后,我可以通过使用…获得相同的输出,我的代码如何更好/更差
您的代码将:
- 仅支持在加载事件激发时调用的函数。如果尝试分配另一个函数,它将覆盖前一个函数,而不是设置两个函数在事件触发时调用
- 如果load事件已经触发,则不会立即(或根本不会)调用函数(因此您不能在可以动态添加到页面并正常使用的脚本中使用它)
回答得很好!现在它完全有道理了。:)
function myfunc() {
console.log("Hello, world!");
}
window.onload = (function() {window.setTimeout(myfunc, 0);});