在嵌套函数中访问 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中文网其他相关文章!