js中var _this = this用法的理解

在js代码中,经常会碰到var _this = this这样的用法。为什么要这么写?这是因为在不同的执行环境中,this的指向会发生变化,通过this获取到的值也会产生不确定性,给程序带来意想不到的结果。有一次,在回调函数中使用this取值就发生过这样的事情。将this赋值给一个普通的变量_this后,通过_this取值可以避免这一情况的发生。

举个例子,深入理解一下this的指向问题。
js中var _this = this用法的理解
第一步,定义两个a的环境,一个是全局变量即window的属性,一个是对象字面量obj中的一个属性;
第二步,定义一个函数test,返回this.a;
第三步,调用函数test,返回值为1,说明this指向的是window对象;
第四步,给test函数绑定一个执行环境后(即obj),返回值为2,说明this指向了obj对象。

有关函数绑定执行环境的方法可以自行查阅。