A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

源代码如下:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title></title>
  5. <script type="text/javascript">
  6. function f1() {
  7. alert("我是f1");
  8. }
  9. function f2() {
  10. alert("我是f2");
  11. }
  12. </script>
  13. </head>
  14. <body>
  15. <input type="button" value="请点我1" onclick="f1()" />
  16. <input type="button" value="请点我2" onclick="document.ondblclick=f2" />
  17. </body>
  18. </html>
复制代码
问题如下:
<input type="button" value="请点我1" />
<input type="button" value="请点我2" />
这两行代码中:
前一行的方法f1后面加了括号,为"onclick="f1()" ;
后一行的方法f2后面没有加括号,为onclick="document.ondblclick=f2"

我的理解是:将方法和这个事件onclick相关联,其实就是将方法的地址的引用传给这个事件中包含的委托链。
我弄不明白的是为什么前一行代码方法f1后面要加上括号呢?这样岂不是调用方法f1,然后将f1的返回值赋值给onclick事件?onclick事件应该接收的是地址(即指针)呀,怎么变成接收一个方法的返回值了呢?
或者说这两者有什么区别和联系,希望帮我分析下?谢谢!

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

1 个回复

倒序浏览
1. 前台中控件的onclick事件,是触发事件;
2. JS中的alert("我是f1");不会返回给onclick事件,因为alert("我是f1");是弹出一个Windows消息框;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马