微信小程序中,什么时候才把this编程that? 以前一直有个习惯,就是在函数体内都会改变下this,然后今天被老大说了,我只是用let that=this 是为了存一个当前指向的this,但是具体什么时候去存这个this还是比较模糊,希望来个人帮我解答一下,谢谢~
网友回复
卢霄霄:
如果你全用箭头函数(个别地方需要bind(this)),就可以告别 let that = this了
思男:
看你需要指向哪呀,根据自己需求来啊。
꯭老꯭来꯭多꯭健꯭忘꯭:
强烈建议使用箭头函数
:
你们老大估计也不是很懂吧
湫:
比如ajax请求数据的成功回调里、需要that=this ,或者定时器里需要this的时候 外面定义that = this
؞咬了你؞F࿆ū࿆t࿆ū࿆r࿆ē࿆:
Page({ onLoad: function () { let that = this setTimeout( function () { that.setData({...}) }, 1000) } }) |
例如这种情况。
反正就是出现闭包,或者别的跨实例的调用,或者此this非彼this的状况。那你就需要通过that = this或者别的什么东西来把原来的this传进去。
var 友原:
楼上说得都对
圆:
console.log(this)一下呗
在方法内部使用this的时候,通过this能不能拿到外部(你想要的)的属性或方法,拿不到则用let that = this,拿的到就不需要了;
强烈建议使用箭头函数,箭头函数内部与其外部的this是保持一致的;
zzc:
不一定要用that啊,let abcd = this都可以
戒丶:
还有哦,这里的this指向应该也是没有被改变的把?所以我也没有必要去声明那个that了对吧?其次,关于变量名.....我是真的快起疯了- -