Javascript - 尝试理解传递'这个'与对事件的引用

时间:2013-10-10 17:03:10

标签: javascript javascript-events this

初学JavaScript问题:

我试图理解将'this'传递给函数与传递对事件本身的引用之间的区别。

我正在测试两个独立的div,每个div都有一个用于mouseover和mouseout事件的独立函数。我将'this'传递给一个函数,然后将'this'和'e'传递给另一个函数。我的例子是:http://jsfiddle.net/jkolden/NQvaL/13/

document.getElementById('output').onmouseover = function(e) {mousein(e, this);};
document.getElementById('myDiv').onmouseover = function() {mouseinAlt(this);};

似乎'this'关键字总是引用我附加我的监听器的html元素,但'e'将引用该html元素的子元素被鼠标悬停;这是正确的陈述吗?我只是好奇,如果我正确理解这一点,并且我的例子是以适当的方式使用这些。

提前感谢您帮助我理解: - )

1 个答案:

答案 0 :(得分:2)

this指的是您附加事件的元素。 e指的是事件对象。在该事件中,对象是对事件的target的引用(在每个浏览器中并不总是相同的属性,在IE中它是srcElement),这是调度事件的元素。

在此处查看更多信息: https://developer.mozilla.org/en-US/docs/Web/API/event.target