当前位置: 首页 > 科技观察

一篇文章带你了解JavaScript中的this关键字

时间:2023-03-13 15:41:35 科技观察

与其他语言相比,this关键字在JavaScript中的行为略有不同。在JavaScript中,this关键字指的是它所属的对象。根据使用位置的不同,它具有不同的值。1.preamble方法中,this关键字指的是它所属的对象。this指的是函数中的全局对象。this指的是函数中的全局对象。在严格模式下,这在事件中是未定义的。这是指接收事件的元素。像call()和apply()这样的方法可以引用到任何对象。2.方法上下文在一个对象方法中,this指的是方法的使用者。调用user.getName()时,该函数在内部将其绑定到用户对象:示例:Project

在这个例子中,user对象是getName方法的所有者:

这里的用户对象是所有者的getName方法。1.全局上下文在全局执行上下文中(在任何函数之外),无论是否处于严格模式,this都指代全局对象。示例Item

在全局执行上下文中(在任何函数之外),this指的是全局对象:

在浏览器中按F12访问调试,并在调试器菜单中选择“控制台”:

在浏览器窗口中,全局对象是[objectWindow]。2.函数上下文在函数内部,this的值取决于函数的调用方式。由于以下代码不是严格模式,因此默认为全局对象,即浏览器中的[objectWindow]。functionmyFunc(){returnthis;}处于严格模式,但this的值未定义。functionmyFunc(){"usestrict";returnthis;}所以在严格模式下,如果执行上下文没有定义它,它将保持未定义状态。三、DOM事件处理器中的this当函数作为事件处理器时,this会被设置为触发事件的元素:例子letbtn=document.querySelector("button");btn.onclick=function(){这个.style.display="无";};当从内联事件处理程序调用代码时,this将设置为放置侦听器的元素:Clicktoremoveme四、显式函数绑定call()和apply()方法是预定义的JavaScript方法。它们都可以用来调用以另一个对象为参数的对象方法。arrowfunction(=>)inarrowfunction(=>),this总是指向创建它的词法作用域中的this。在全局代码中,它会被设置为globalobject:五、总结本文建立在基础上JavaScript并引入了this关键字。与其他语言相比,this关键字在JavaScript中的行为略有不同,this的常见用法,包括(global,function,functionbinding)有详细解释。希望通过文章的学习,能够让读者更好的理解和学习JavaScript。