微信小程序js程序中“this”的指向说明

在微信小程序中,当你在Page对象的方法或生命周期函数内部(比如onLoadonShowonReady等)使用this时,它是指向当前的Page对象。这意味着你可以通过this来访问Page对象定义的datamethodsproperties等。

在Page对象内部定义的自定义函数,如果在Page对象的方法或生命周期函数中被调用,那么在这个函数内部使用this时,它也会指向当前的Page对象。

但是,如果你在一个非Page对象的方法(比如一个普通的JavaScript函数)内部使用this,或者将Page对象的方法作为回调函数传递给其他函数或事件监听器,那么this的指向可能会改变,不再指向Page对象。为了避免这种情况,你可以使用箭头函数来保持this的指向,或者将this引用保存在一个变量中(通常叫做selfthat)。

例如,保持this指向Page对象的方法:

Page({  
    data: {  
        redPacketMin: 0.1, // 红包最小值, 单位元  
        redPacketMax: 5, // 红包最大值, 单位元 
        // ...  
    },  
    onLoad: function() {  
        // 使用箭头函数保持this指向Page对象  
        setTimeout(() => {  
            this.fun1();  
        }, 1000);  
  
        // 或者将this保存到变量中  
        var that = this;  
        someAsyncFunction(function() {  
            that.fun1();  
        });  
    },  
    fun1: function() {  
        // 在这里,this指向Page对象  
        console.log(this.data.redPacketMin);  
    }  
    // ...  
});

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值