【JavaScript】apply、call如何修改this的指向

javascript中函数调用的四种模式
【摘自qq_39201210 :原文链接】

  1. 函数调用模式
  2. 对象调用模式
  3. 构造函数调用模式
  4. 上下文调用模式

【说明】不同的函数调用模式,this的指向不同。

1.函数调用模式

 function test(){
            console.log(this);//window
        }
        test();

【说明】test() 其实应该这样写window.test();test()调用的对象是window.

2. 对象调用模式

 var age = 10;
        var obj = {
            age : 20,
            test:function(){
                console.log(this.age); //20
            }
        }
        obj.test();   

【说明】将函数作为对象的属性,这样就转化为对象的一个方法。通过对象调用这个方法时,this就指向调用这个方法的对象。.

3.构造函数模式

 function Person(age){
            this.age = age; 
            this.sayAge = function() {
                console.log(this.age);
            }
        }
        var obj =new Person(18);
        obj.sayAge();//18
        var obj1 = new Person(20);
        obj1.sayAge(); //20

【说明】构造函数中的this指定的是new关键字创建出来的对象


关于前端面试的经验之谈 (来自各位前辈博主的文章)
【前端面试(面试官篇)】 :摘自青岑lw (原文链接)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值