理解“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”或“currentElement”,以使代码意图更加明显。
以上是为什么在 JavaScript 中使用 `var that = this;`?的详细内容。更多信息请关注PHP中文网其他相关文章!