this call() apply() 小结

关于this的指向
1.全局环境下的this始终指向全局对象 也就是 window;
2.在普通函数内部,this指向window;
3.在对象内部的this指向调用这些方法的对象;
4.构造函数内的this与被创建的对象绑定;
5.在定时器下 this指向window (除es6外);

apply() 与 call()
两种方法均是,调用一个对象的一个方法,并用另一个函数替换当前对象。
例:

B.apply(A,arguments);
B.call(A,args1,args2);

且他们的共同之处是
都“可以用来代替另一个对象调用一个方法,将一个函数的对象上下文从初始的上下文改变为由thisObj指定的新对象”。

不同之处在于两种方法的传参方式
刚刚在示范基本写法的时候其实已经见到了,
call() 是除去第一个外,剩余的以普通方式传参;
apply()是除去第一个, 剩余的以数组形式传参;

function luz (name,age){
     this.name = name;
     this.age = age;
     this.abc = function(){
        console.log(this);
     }
}
function luz1 (name,age){
    luz.call(this,name,age);
}
var dyz = new luz1("xx","18")
  dyz.abc()

使用call()方法继承;

function Car(name){
  this.name = name;
  this.show = function(){
        alert(this.name);    
    }    
}
function Cat(name){
  Car.apply(this,[name]);    
}

var cat = new Cat("滴滴");
cat.show();

使用apply()方法继承

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值