JS中的THIS和WINDOW.EVENT.SRCELEMENT详解

对于js初学着必须理解this和srcElement的应用,这也是面试中经常考到的。下面我们就通过几个示例来详细了解下

我们先看一个简单的例子:

复制代码 代码如下:

完全没有问题。

那么什么情况下不可以用?

 fuction method() { alert(this.value); } 

这个就不可以,因为method()是被响应函数调用的函数。

那么这种情况下怎么办?

方法一:

 fuction method(btn) { alert(btn.value); } 

没问题!

方法二:

 fuction method() { alert(window.event.srcElement.value); } 

没问题!window.event.srcElement取得触发事件的控件

我们在看一个稍微绕一点的例子

   

我们再来看看2者之间的区别和联系

this:

  下面先看一个例子:

  this与srcElement的区别  

此时得出的答案为“单击”,此时为什么可以呢?从代码中可以看出,在onclick事件调用函数btnClick()时,将this当作参数传递给了函数。

综合以上:在函数调用时不能直接使用this.属性来获取,而必须将this当作参数传递。

 window.event.srcElement:

下面看一个例子:

   无标题页 

此时得出的答案为“单击”,说明在调用函数时可以使用window.event.srcElement.属性来获取。

为什么this不能直接使用而window.event.srcElement可以直接使用呢?从单纯的字面上说this的意思是“当前”。在函数调用时,没有指定具体是哪一个控件,在函数中直接用this是不可以的。在第二段代码中就将this当成了参数传递,所以能得出正确的答案。

其实this和window.event.srcElement的使用区别是:如果要直接使用this.属性,此时的函数不能是被调用的而必须是响应函数,而window.event.srcElement则无此限制。

以上所述就是本文的全部内容了,希望大家能够喜欢。

以上就是JS中的THIS和WINDOW.EVENT.SRCELEMENT详解的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » JavaScript 教程