在以下代码中,函数writeMessage
被调用而没有括号。但它工作正常,但它是一个正确的函数调用方式在javaScript或更好地使用括号与writeMessage()
。
window.onload = writeMessage;
function writeMessage()
{
document.write("Hello World");
}
答案 0 :(得分:5)
window.onload = writeMessage;
不是电话 - 这是一项任务。您将writeMessage
函数指定为onload
对象的window
字段。实际调用(内部)执行window.onload()
,相当于您writeMessage()
的情况。
答案 1 :(得分:2)
在下面的代码中,函数writeMessage被调用而没有括号。
实际上,事实并非如此。代码
window.onload = writeMessage;
不调用该函数。它将函数分配给onload
的{{1}}属性。在浏览器中加载页面的部分过程是在加载过程完成后触发分配给该属性的函数(如果有的话)。
如果你写了
window
您正在做的是调用window.onload = writeMessage();
并将调用的结果分配给writeMessage
,就像window.onload
一样。
请注意,您实际引用的代码(在页面加载时执行x = foo();
)将清除刚刚加载的页面并将其替换为“Hello world”文本,因为当您调用{页面加载完成后,{1}}显示document.write
,它会清除页面。 (试试here;源代码here。)在现代网页和应用中,您几乎从不使用document.write
,但在极少数情况下,您必须使用代码在页面加载时运行(例如,不迟日)。
答案 2 :(得分:1)
()
用于执行功能
当你写
window.onload = writeMessage;
您实际上将委托(pointer
设置为要执行的函数) - 当onload
事件发生时。
答案 3 :(得分:0)
这已经是正确的了。
您不需要括号,因为您只是将函数存储在window.onload
中,而不是自己调用它。