Discuss
/
JavaScript
/
温习了好多遍,还是不甚明了,参数e是怎么传的。
温习了好多遍,还是不甚明了,参数e是怎么传的。
Topic source你这里弄错了函数了。
在实例代码中,最后传入参数e
的是回调函数reader.onload
:
reader.onload = function (e) { ... }
而change
事件则是通过添加监听事件来捕获:
// 监听change事件:
fileInput.addEventListener('change', function () { ... }
上面change
事件的函数并没有传入参数。参考资料:
#2
回复理解错你的意思很抱歉!
层主想表达的是onload
事件的参数e(vent)
是否从onchange
事件外部传递进来,如果是,那么在示例中并onchange
函数并没有传进来任何参数,那么参数e
是怎么来的。
其实,onchange
, onload
等事件是通过回调的方式执行的,首先是HTML DOM Event 对象分发事件句柄(event handlers
)给可能需要执行的函数,当某个事件被触发(fire
)时,句柄执行对应元素的onload
等事件定义函数。
但是如果需要获得event
对象所存储的状态(例如获取调用onload
事件的元素),那么可以通过event.target
(例子中的e.target
)来获得,这个event
就是回调参数,实际上引用的是DOM Event
对象,处在dom树的顶层。
而依照程序执行状况来看,这个回调参数Event
是在addListener
函数中处理传入,所以onchange
事件被触发时也已经一并传入了Event
对象实例,change
事件中的function () {}
参数列表为空是表示没有用户自定义参数!
如果上述观点有错误,欢迎大家指正!
- 1
蛮吉睡不醒
reader.onload = function(e) 这个参数e,理解不能。因为change事件所监听的function ()这个外层函数是无参数的。怎样才能向内层的(e)传递参数呢。
有劳廖大。