我有一个简单的 JS 函数,可以将文本行加载到无序列表。
Javascript
function loadText() {
document.getElementById("text1").innerHTML = "Text1";
document.getElementById("text2").innerHTML = "Text2";
document.getElementById("text3").innerHTML = "Text3";
}
window.onload = loadText;
HTML
<ul id="textlist">
<li id="text1"></li>
<li id="text2"></li>
<li id="text3"></li>
</ul>
这实际上在浏览器 (Chrome) 中有效,但是当我使用 window.onload = loadText();
而不是 window.onload = loadText;
时。我得到错误:
Uncaught TypeError: Cannot set property 'innerHTML' of null
我假设这是因为 DOM 没有被读取所以我尝试了 ondomready 但在那里遇到了同样的问题。然而,将 window.onload = loadText();
改回 window.onload = loadText;
再次起作用。
我觉得这会造成不同,这有点奇怪。我在这里错过了什么吗?
最佳答案
window.onload = loadText();
这会立即执行 loadText 并将其返回值存储在 window.onlad 中
window.onload = loadText;
这使得 window.onload 引用 loadText 函数。调用 window.onload() 现在将与调用 loadText() 相同
关于javascript - 在 Javascript 中调用函数 loadText 与 loadText() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25138092/