duke_mail 发表于 2013-7-16 21:25:23

js中函数调用何时加括号、何时不加?

//document.getElementById("myBtn").onclick=displayDate();这样为什么无效
<!DOCTYPE html>
<html>
<head>
</head>
<body>


<p>点击按钮就可以执行 <em>displayDate()</em> 函数。</p>


<button id="myBtn">点击这里</button>


<script>

function displayDate()
{
document.getElementById("demo").innerHTML=Date();
}
//
document.getElementById("myBtn").onclick=function(){displayDate();}
document.getElementById("myBtn").onclick=displayDate;


</script>


<p id="demo"></p>


</body>
</html>

lsekfe 发表于 2013-7-23 09:44:14

师兄,看着好像有点眉目了,但是有更深入的介绍吗 ?比如说推荐本书,最好是电子书。谢谢!!
太坑爹了, ...
duke_mail 发表于 2013-7-19 19:54 http://bbs.51testing.com/images/common/back.gif


    您好,这个是因为你的论坛等级太低!

wuxue107 发表于 2013-7-18 14:43:32

本帖最后由 wuxue107 于 2013-7-18 15:34 编辑

document.getElementById("myBtn").onclick=displayDate();这样为什么无效
首先要知道onclick他接收值的是什么类型,他应该是接受一个指向一个要执行函数入口的地址,函数名像是一个指向函数入口地址的指针变量
那么这个时候就体现了用括号和不用括号的区别了。
仅仅函数名,代表这个函数的地址
函数名(),代表函数执行后的返回值

有时候我们常见这样的写法xxx.onclick=function(){...}
function(){...} 这是创建了一个匿名函数,并返回匿名函数的地址

duke_mail 发表于 2013-7-19 19:54:41

师兄,看着好像有点眉目了,但是有更深入的介绍吗 ?比如说推荐本书,最好是电子书。谢谢!!
太坑爹了,回复个主题,要回答问题、看验证码???? 步骤太繁琐了。我发个贴,回复个主题,我容易吗我???
页: [1]
查看完整版本: js中函数调用何时加括号、何时不加?