call函数学习记录

文章讨论了JavaScript中对象方法`aObjFun`的this指向问题,当没有明确call的指向时,this指向自身且无法访问data。通过call方法传递外部this参数,可以改变`aObjFun`的指向并获取到data值。

 1、没有指定call的指向,此时 aObjFun 里的 this 指向它自己,并且获取不到 data 的值。

const _this = this;
const data = 6;
const aObj = {
    aObjFun(test1, test2) {
        const a_this = this;
        if (this.data) console.log(this.data);
        return {a_this, test1, test2}
    }
}
console.log(aObj.aObjFun.call('1','2'))
// {a_this: String {'1'}, test1: '2', test2: undefined}

 2、给call第一个参数传入最外层的 this 参数时,aObjFun 的指向则跟最外层 this 的指向一致,同时也能获取到 data 的值了。


console.log(aObj.aObjFun.call(_this,'1','2'))
// {a_this: Window, test1: '1', test2: '2'}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值