黑马程序员技术交流社区
标题:
onclick="document.onclick=f1"与onclick="f2()"有什么区别?
[打印本页]
作者:
何圣东
时间:
2012-3-20 22:30
标题:
onclick="document.onclick=f1"与onclick="f2()"有什么区别?
onclick="document.onclick=f1"与onclick="f2()"有什么区别?
后面什么时候带括号,什么时候又不带括号?
DOM.jpg
(43.87 KB, 下载次数: 56)
下载附件
2012-3-20 22:29 上传
作者:
莫洪刚
时间:
2012-3-21 09:11
关联事件一你可以这样理解:
关联事件1的单击事件所执行的函数为f1(注意:这个时候this指针起作用了,指向了该对象相关联的节点document,因为是document对象来引发该函数的)
关联事件二你可以这样理解:
关联事件二的单击事件就是去执行f2函数(注意:这个时候this指针不起作用了,并没有指向该对象,而是指向的window对象)
<script type="text/javascript">
function f1() {
alert('关联事件一' + this);//指向了document对象而不是input,也不是window
}
function f2() {
alert('关联事件二'+this);//指向了window对象
}
</script>
</head>
<body>
<input type="button" onclick="document.onclick=f1" value="关联事件一" />
<input type="button" onclick="f2()" value="关联事件二" />
如果要让两个按钮都指向自己本身那么只有将this保存起来,将参数传递过去,就获得该引发事件对象的本身如:
<script type="text/javascript">
function f1(o) {
alert('关联事件一' + o);//(注意:)o指向了input,但是这个函数中的this还是指向了window对象而不是document对象
}
function f2(o) {
alert('关联事件二'+o);//o指向了input,但是这个函数中的this还是指向了window对象
}
</script>
</head>
<body>
<input type="button" onclick="document.onclick=f1(this)" value="关联事件一" />
<input type="button" onclick="f2(this)" value="关联事件二" />
我觉的最主要的还是理解this指针是关键,而不是简单的函数执行那么单纯,我希望你理解没加括号,或则加了括号的区别和作用,如果有错还请高手们多多指教
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2