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

为什么在嵌套 JavaScript 函数中使用 `var that = this;`?

Linda Hamilton
Linda Hamilton原创
2024-12-05 05:50:10294浏览

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

在嵌套函数中访问 this:解开 var that = this;

在 JavaScript 中,理解 this 的范围和值至关重要。考虑以下代码片段:

function Somefunction() {
  var that = this;
  ...
}

为什么要声明它并为其分配值?

为了理解此技术的目的,让我们想象一个场景:

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

  colours.forEach(function() {
    // this is undefined within this inner function
    // that still refers to the clicked element
  });
});

forEach 回调中的 this 指的是当前数组元素,而不是单击的元素。但是,这会维护对单击元素的引用。

当您进入嵌套函数时,其范围可能会发生变化,从而难以访问原始值。将此别名设置为 that 可确保原始值仍然可访问。

请注意,将其用作别名并不总是最佳的。最好使用更具描述性的别名,清楚地表明它所指的内容,尤其是在复杂的函数中。

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn