gpt4 book ai didi

javascript - 'var that = this;' 在 JavaScript 中是什么意思?

转载 作者:IT老高 更新时间:2023-10-28 11:03:59 27 4
gpt4 key购买 nike

在我看到的一个 JavaScript 文件中:

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

声明 that 并将 this this 分配给它的目的是什么?

最佳答案

我将从一个插图开始这个答案:

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
});
});

我的回答最初用 jQuery 证明了这一点,只是略有不同:

$('#element').click(function(){
// this is a reference to the element clicked on

var that = this;

$('.elements').each(function(){
// this is a reference to the current element in the loop
// that is still a reference to the element clicked on
});
});

由于this在你调用一个新函数改变作用域的时候经常会发生变化,所以你不能通过使用它来访问原来的值。将其别名为 that 允许您仍然访问 this 的原始值。

就我个人而言,我不喜欢使用 that 作为别名。它所指的内容很少很明显,尤其是当函数超过几行时。我总是使用更具描述性的别名。在我上面的例子中,我可能会使用 clickedEl.

关于javascript - 'var that = this;' 在 JavaScript 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4886632/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com