对于js初学着必须理解this和srcElement的应用,这也是面试中经常考到的。
this:
下面先看一个例子:
1 2this与srcElement的区别 3 4
此时弹出的答案为“undefined”,说明在调用函数时不能使用this.属性来获取。再看下一个例子:
1 2 3 4无标题页 5 10 11 12 13 14 15
此时得出的答案为“单击”,此时为什么可以呢?从代码中可以看出,在onclick事件调用函数btnClick()时,将this当作参数传递给了函数。
综合以上:在函数调用时不能直接使用this.属性来获取,而必须将this当作参数传递。
window.event.srcElement:
下面看一个例子:
1 2 3 4无标题页 5 10 11 12 13 14 15
此时得出的答案为“单击”,说明在调用函数时可以使用window.event.srcElement.属性来获取。
为什么this不能直接使用而window.event.srcElement可以直接使用呢?从单纯的字面上说this的意思是“当前”。在函数调用时,没有指定具体是哪一个控件,在函数中直接用this是不可以的。在第二段代码中就将this当成了参数传递,所以能得出正确的答案。
其实this和window.event.srcElement的使用区别是:如果要直接使用this.属性,此时的函数不能是被调用的而必须是响应函数,而window.event.srcElement则无此限制。