JavaScript 中的 var that = this

微信小程序用有如下代码:

var that = this;
 if(this.globalData.userInfo){
 typeof cb == "function" && cb(this.globalData.userInfo)

this 是JavaScript语言的一个关键字。它代表函数运行时,自动生成一个内部对象,只能在函数内部使用。 在以上代码中,就是将当前的对象this复制到that中。举个栗子说明一下:

$('#canvas').click(function () {
 var that = this;//this是被点击的#canvas
 $('.mine-canvas').forEach(function () {//.mine-canvas是当前的循环对象,that仍然是当前的this
    })
 })

从上面的栗子可以看出,在执行的过程中,this对象会被改变,如果将其复制道that中,that没有改变之前仍然是指向了当时的this,可以找到原this对象。