黑马程序员技术交流社区

标题: 在Dom时间中为什么有的处理函数后面要加()而有的不加。 [打印本页]

作者: 李先洋    时间: 2012-12-13 16:43
标题: 在Dom时间中为什么有的处理函数后面要加()而有的不加。
<html>
<head>
<script  type="text/javascript>
    functoin bodymosedown(){
          alert("哈哈");
     }
    function f(){
       alert("点我");
    }
</script>
</head>
<body onmousedown="bodymousedown()" >
<input type="button” onclick=“document.ondbclick=f"/>  
</body>
</html>
为什么调用函数bodymousedown后面加();f 后面不加()?
作者: netboy032    时间: 2012-12-13 17:08
第一个是调用那个函数,你调用函数难道不加括号的啊。
第二个是把 f 所指向的函数的地址赋值给document.ondbclick,所以不加括号咯,

作者: 张小平    时间: 2012-12-13 17:24
个人理解:()可以表示成调用函数,得到其返回值,onmousedown="bodymousedown()" 可以理解成当鼠标按下的时候,调用bodymousedown的返回值,也就是弹出哈哈消息框;而<input type="button” onclick=“document.ondbclick=f"/>是动态设置事件的一行代码,意思是,当点击button时,设置当前文档的双击事件要处理的函数是f,动态设置事件的代码中的函数不能加(),否则设置的事件会失效
作者: 黄新    时间: 2012-12-14 11:17
<body onmousedown="bodymousedown()" >
<input type="button” onclick=“document.ondbclick=f"/>
bodymousedown()是一个函数,意思就是当onmousedown事件发生的时候调用bodymousedown()这个函数了。
第二句话的意思就是当button按钮被点击了,就把 documnet.ondblik 这个事件绑定一个f的方法。这里f 表示的就是指向f()函数的指针。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2