这是我在页面加载时测试的脚本。
window.onload = initAll;
function initAll() {
document.getElementById("pTag").innerHTML = "Hello Java Script !";
}
直到我在
initAll()
中加了像call. _( window.onload=initAll(); )_
这样的括号,上述脚本才能正常工作。如果在函数调用期间使用initAll()
,则什么也不会发生。就像脚本不在那儿。为什么会这样呢?
最佳答案
window.onload
期望您为其设置的值是一个函数(函数类似于JavaScript中的任何其他对象)。
如果将括号放在initAll
之后,则实际上会调用该函数并将window.onload
设置为该函数的返回值。由于该函数未明确显示return
任何内容,因此该值为undefined
。因此,在实践中您可以想到以下代码:
window.onload = initAll();
function initAll() {
// do something with document
}
等效于以下代码:
var result = initAll();
window.onload = result;
function initAll() {
return null;
}
我敢肯定,您可以立即了解为什么这行不通。