首页 > web前端 > js教程 > 为什么在 JavaScript 中使用 `var that = this;`?

为什么在 JavaScript 中使用 `var that = this;`?

Linda Hamilton
发布: 2024-12-18 02:30:10
原创
480 人浏览过

Why Use `var that = this;` in JavaScript?

理解“var that = this;”在 JavaScript 中

在 JavaScript 中,'this' 关键字代表当前对象。将“this”分配给“var that”允许开发人员维护对原始对象引用的引用,即使在“this”可能更改的嵌套函数中,也可以稍后访问该引用。

请考虑以下代码片段:

function Somefunction(){
   var that = this; 
   ... 
}
登录后复制

这里,将“this”分配给“that”可确保在“Somefunction”范围内,“that”始终引用原始对象实例。这在使用闭包或事件处理程序时很有用,其中“this”引用在调用嵌套函数后可能会发生变化。

为了说明这一点,假设您有一个监听元素上的“click”事件的函数:

var colours = ['red', 'green', 'blue'];
document.getElementById('element').addEventListener('click', function() {
    // this is a reference to the element clicked on

    var that = this;

    colours.forEach(function() {
        // this is undefined
        // that is a reference to the element clicked on
    });
});
登录后复制

在事件处理程序中,“this”指的是被单击的元素,但在内部“forEach”函数中,“this”变得未定义。通过将其别名为“that”,您仍然可以访问对单击元素的原始引用。

总之,“var that = this;”确保维护对当前对象的一致引用,这使得它在“this”可以动态更改的事件处理或关闭场景中特别有用。但是,为了清楚起见,请考虑使用更具描述性的别名,例如“clickedEl”或“c​​urrentElement”,以使代码意图更加明显。

以上是为什么在 JavaScript 中使用 `var that = this;`?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板