首页 > 代码库 > 事件绑定的第二种形式 & call
事件绑定的第二种形式 & call
<script> //call 函数下的一个方法,call方法第一个参数可以改变函数执行过程中的内部this的指向,call方法第二个参数开始就是原来函数的参数列表。 function fn1(a, b) { alert(this); alert(a + b); } fn1(); //window fn1.call(null, 10, 20); //调用函数 fn1() == fn1.call() </script>
<script> //给一个对象绑定一个事件处理函数的第一种形式 //obj.onclick = fn; function fn1() { alert(this); } function fn2() { alert(2); } //document.onclick = fn1; //document.onclick = fn2; //会覆盖前面绑定fn1 //给一个对象的同一个事件绑定多个不同的函数 //给一个元素绑定事件函数的第二种形式 /* IE:obj.attachEvent(事件名称,事件函数); 1.没有捕获 2.事件名称有on 3.事件函数执行的顺序:标准ie-》正序 非标准ie-》倒序 4.this指向window 标准:obj.addEventListener(事件名称,事件函数,是否捕获); 1.有捕获 2.事件名称没有on 3.事件执行的顺序是正序 4.this触发该事件的对象 */ /*
document.attachEvent(‘onclick‘, function() { fn1.call(document); }); document.attachEvent(‘onclick‘, fn2);
*/ //是否捕获 : 默认是false false:冒泡 true:捕获 function bind(obj, evname, fn) { if (obj.addEventListener) { obj.addEventListener(evname, fn, false); } else { obj.attachEvent(‘on‘ + evname, function() { fn.call(obj); }); } } bind(document, ‘click‘, fn1); bind(document, ‘click‘, fn2); </script>
事件绑定的第二种形式 & call
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。