二、js-this指向(2021/4/23)

记住这两个法则:

  • 一:在函数中直接调用就是window对象的调用
function  get(content) {
        console.log(content);
}
get('你好');
// 其实就是: 函数作为对象的方法被调用(谁调用我 我就指向谁)
get.call(window,'你好'); 
  • 二: 函数作为对象的方法被调用(谁调用我 我就指向谁)
var person = {
        name:'张三',
        run:function (time) {
               console.log(`${this.name} 在跑步 最多${time}min就不行了`) 
        }
}
person.run(30);
person.run.call(person,30);

题目

var name = 222;
var a = {
        name:111,
        say:function(){
                console.log(this.name)
        }
}

var fun = a.say;
fun();///222  fun.call(window)
a.say();//111 a.say.call(a)

var b = {
        name:333,
        say:function(fun){
                fun(); 
        }
}
b.say(a.say);//222  fun.call(window)
b.say = a.say; 
b.say();//333 b.say(b)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值