想请教下,这段话怎么理解?

scorp 发布于 2014/11/01 19:53
阅读 156
收藏 0
在W3C中引用event对象
 在W3C事件模型中,event对象引用比较复杂。在对数情况下,必须明确地将event对象作为一个参数传递到时间处理函数中。event对象有时可自动作为参数传递,这依赖于事件处理函数如何与对象绑定。
   ??? 这里的event对象有时可自动作为参数传递,这依赖于事件处理函数如何与对象绑定??
  
  可自动作为参数传递?这个怎么理解?
   <script>function test(){ alert(event.clientX);}</script>
<body onmousemove=test(); <!--这里面不写参数,照样可以执行的意思?还是别的意思?这样是不是就是他所说的自动作为参数传递?
 还可以通过其他方式将事件处理函数绑定到对象(在NN6+中,使用属性赋值和w3cDOm的addEventLisetener()方法),将这些事件处理函数的引用赋给文档中所需的对象。例如:
 document.forms[0].someButton.onKeyUp=example; 通过这些方式进行事件绑定可以防止自己的参数直接到达调用的函数。

这句话“防止自己的参数直接到达调用的函数”???
事件执行的时候不是在触发的情况下才把自己的参数传递给调用函数吗?他这里说的防止是指的什么情况?
是不是 同时有好几个事件,默认的都是event对象
而分不清到底传入的对应哪一个事件?
比如下面的例子理解的对不对?
<style>
   .blk{width:200px; height:200px;border:1px solid blue;}
</style>
</head>
<body>
 
            <form name="f1">
               <button name="b1" onmousedown="gg(event)">点击</button>

            </form>
            <script>
                function gg(evt){
                                   
                alert(evt.clientX);
                }
                function kk(evt1){
                  alert(evt1.button);
                }
            </script>

            <div class="blk" onmousedown="kk(event);" </div>

但自己点击其中某一个事件的话 互不影响呀,那他这句话是防止啥情况出现?可否说一下。

自己试了下用  document.f1.b1.onmousedown=jj(event);
 
<script>
function yy(evtt){
    alert(evtt.clientX);
}
   function jj(evt){
 alert(document.f1.b1.onmousedown=yy(evt));
}
</script>
   <form name="f1">
               <button name="b1" onmousedown="jj(event)">点击</button>

            </form>

感觉不出他所说的“ 防止自己的参数直接到达调用的函数 ” 不知道自己理解的正确否。
加载中
0
自由之信
自由之信
// 自动传递

function a (t, cb) {

   console.log (t);
   cb (++t);
}

a (3, function () {
}); // callback 没有参数,但是一样传递过来,你没有接收而已

a (3, function (t, b) {
    console.log (t); // 4
    console.log (b); // undefined
});



0
s
scorp
多谢提醒, document.forms[0].someButton.onKeyUp=example; 通过这些方式进行事件绑定可以防止自己的参数直接到达调用的函数。那这句话他特意强调 防止自己的参数直接到达调用的函数。 这个一般是在啥情况下用?是不是想传一些字符参数 ,但默认的确实传递的是event这个事件参数 ,这样用的话就可以过滤到不需要的参数传递???
返回顶部
顶部