本文解析JavaScript中var that = this的常见写法。在嵌套函数或回调中,this指向会发生变化。通过将该变量赋值给that,可以保存外层函数的this引用,从而在内部函数中正确访问外层对象,避免this指向错误导致的Bug。
JavaScript中var that = this的作用与原理详解
在阅读JavaScript代码时,你可能会遇到类似var that = this;这样的语句,这究竟是什么意思呢?
在JavaScript语言中,this关键字通常指向当前执行上下文中的对象。
语句var that = this的作用是将当前的this对象引用复制一份并赋值给变量that。这样做的实际意义何在?
具体代码示例如下:
$('#zhetenga').click(function(){
//this是被点击的#zhetenga
var that = this;
$('.zhetenga').each(function(){
//this是.zhetenga循环中当前的对象
//that仍然是刚才被点击的#zhetenga
});
}); 由此可见,this对象的指向在程序执行过程中可能会发生变化。而在执行var that = this之后,只要that未被重新赋值,它依然指向当时的this对象,从而确保能够正确引用原始对象,避免因this指向改变而找不到目标。