html52.com
我爱小程序-开发者交流社区

微信小程序中,什么时候才把this编程that?

微信小程序中,什么时候才把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了对吧?其次,关于变量名.....我是真的快起疯了- -
还有哦,这里的this指向应该也是没有被改变的把?所以我也没有必要去声明那个that了对吧?其次,关于变量名.....我是真的快起疯了- -

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付