JavaScript如何为事件处理程序分配上下文?

Roy*_*mir 9 javascript jquery

在阅读相关问题#1,#2后, 我仍然没有找到以下问题的答案:

Javascript可以this使用:bind,call和设置上下文(即设置) apply.

但是当我写一个事件处理程序时:

document.getElementById('myInput').onclick = function ()
                                                   {
                                                      alert(this.value)
                                                   }
Run Code Online (Sandbox Code Playgroud)

谁/什么实际上附着 thisobject自己身上?

PS使用jQuery时:

  $("#myInput").bind(function (){...})
Run Code Online (Sandbox Code Playgroud)

内部实现的(bind,callapply)

所以,当我使用jQuery时,谁在做呢?

pha*_*t0m 8

为什么,DOM/JavaScript当然应该由W3C以这种方式工作.

事件处理程序在特定对象(当前事件目标)的上下文中调用,并随事件对象本身提供.

资源

究竟是怎么回事,我们不知道.这是一个实现细节.

我们所知道的是,W3C定义的语义是以某种方式实现的,但是浏览器的哪个部分可以实现,以及如何由浏览器开发人员完成,并且他们可以按照自己的意愿实现它.

  • @MarcusEkwall [误读,读不要]:不,我们没有.我们知道*发生了什么*,而不是*如何*.这是一个区别. (2认同)