我在自调用函数window.onload
之前有一个函数。
window.onload = function(){
console.log(document.getElementById("one")); //returns null
}
(function selfExecuting(){
console.log("hi")
}());
HTML 很简单:
<div id="one">hi</div>
当我尝试在 window.onload 函数中查找 DOM 元素时,它返回“ null
”。除非我添加一行代码来存储未使用的变量。
window.onload = function(){
console.log(document.getElementById("one")); //now, this returns "<div id="one">hi</div>"
}
var unusedVar = "var"; // This unused variable makes the code work
(function selfExecuting(){
console.log("hi")
}());
有人可以帮我理解为什么它会这样工作吗?这行未使用的代码在做什么?我感觉这与自调用函数的工作方式有关,但我不确定。
注意:我试图将其作为小提琴分享,但它导致控制台日志略有不同。如果这有所作为,我得到的控制台日志与 Chrome 一起使用。