很基础的一个问题 也欢迎大家补充注意点,比如循环中的闭包循环变量 什么样的情况下可能造成内存泄漏 在注册事件的时候,我们有时候会传入参数,例如
document.addEventListener('click',function(ev){ console.log(ev.pageX); })
请问这个参数是指事件发生时的上下文吗? 是不是要用到事件发生时上下文的时候我们就必须要传一个参数,也就是什么时候我们需要传参数?
闭关修行中......
请问这个参数是指事件发生时的上下文吗?
是的,这个参数包含了事件触发事的相关信息。比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
是不是要用到事件发生时上下文的时候我们就必须要传一个参数,也就是什么时候我们需要传参数?
一般情况下,如果你在事件处理函数中要用到事件对象的话(例如:需要阻止冒泡ev.stopPropagation),就会传一个参数。当然了,如果你没有传参,实际上 js 会默认事件对象作为第一个参数,你可以在事件处理函数内部通过argument[0]访问该事件对象。
ev.stopPropagation
argument[0]
可传,可不传, 有需要的时候传
要知道是个什么东西 console.log(ev)一下啥都看出来了
包括很多东西吧,比如发生事件的节点,发生事件的位置,发生事件的类型等
domElement.addEventListener(type, handler) hanlder的形式可以是 handler(event)
工作原理: 触发事件后,系统生成event参数; 系统在DomElement的上下文环境中, 传入生成的event参数,调用handler; handler.call(domElement, event);
所以event并不是执行的上下文环境,而只是系统生成的事件参数;
是的,这个参数包含了事件触发事的相关信息。比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
一般情况下,如果你在事件处理函数中要用到事件对象的话(例如:需要阻止冒泡
ev.stopPropagation
),就会传一个参数。当然了,如果你没有传参,实际上 js 会默认事件对象作为第一个参数,你可以在事件处理函数内部通过argument[0]
访问该事件对象。可传,可不传, 有需要的时候传
要知道是个什么东西 console.log(ev)一下啥都看出来了
包括很多东西吧,比如发生事件的节点,发生事件的位置,发生事件的类型等
domElement.addEventListener(type, handler)
hanlder的形式可以是 handler(event)
工作原理:
触发事件后,系统生成event参数;
系统在DomElement的上下文环境中, 传入生成的event参数,调用handler;
handler.call(domElement, event);
所以event并不是执行的上下文环境,而只是系统生成的事件参数;