Javascript 使用括号()后,我的函数是否未运行?
在myFunction后面添加()括号后,我的第一个代码工作,但第二个代码不工作。原因是什么 代码1Javascript 使用括号()后,我的函数是否未运行?,javascript,function,Javascript,Function,在myFunction后面添加()括号后,我的第一个代码工作,但第二个代码不工作。原因是什么 代码1 <script type="text/javascript"> function myFunction(){ var status = document.getElementById("status"); status.innerHTML = "The page finishing loading made my function run."; } window.on
<script type="text/javascript">
function myFunction(){
var status = document.getElementById("status");
status.innerHTML = "The page finishing loading made my function run.";
}
window.onload = myFunction;
</script>
<h3 id="status"></h3>
函数myFunction(){
var status=document.getElementById(“状态”);
status.innerHTML=“页面加载完成使我的函数运行。”;
}
window.onload=myFunction;
代码2
<script type="text/javascript">
function myFunction(){
var status = document.getElementById("status");
status.innerHTML = "The page finishing loading made my function run.";
}
window.onload = myFunction();
</script>
<h3 id="status"></h3>
函数myFunction(){
var status=document.getElementById(“状态”);
status.innerHTML=“页面加载完成使我的函数运行。”;
}
window.onload=myFunction();
在第一种情况下,您将分配回调中使用的函数的引用
在第二种情况下,您分配的是函数返回的值,在这种情况下未定义
,因为您没有返回任何内容
window.onload
或任何事件处理程序都要求在回调时执行函数引用。window.onload是事件处理程序,必须是函数,而不是函数的结果。当然,您可以留下括号,但这样您的函数myFunction应该返回另一个函数
<script type="text/javascript">
function myFunction(){
return function() {
var status = document.getElementById("status");
status.innerHTML = "The page finishing loading made my function run.";
}
}
window.onload = myFunction();
</script>
<h3 id="status"></h3>
函数myFunction(){
返回函数(){
var status=document.getElementById(“状态”);
status.innerHTML=“页面加载完成使我的函数运行。”;
}
}
window.onload=myFunction();
实际上它正在运行,但不立即加载
onload-检查控制台,您将看到在未定义上设置属性的错误。