Javascript call apply bind 改变this 指向

 

优雅的改变this指向 call() bind() apply()

call 字面意思呼叫  apply 是应用  bind是捆绑的意思 这个最特别也是我们最常用的

 

fun.call(thisArg,arg1,arg2,...) //第一个参数是把this指向谁,后面的是其他类型参数

// call的作用 1是调用函数 2是改变this指向

// 主要作用是实现继承 在es5的时候

function run(a,b) {
    console.log(this);
    console.log(a+b);
}
var o  = {
    name: 'zhangsan'
}

// run.call() //  这样也能调用函数,没有修改this指向
// run.call(o) // 改变this指向为o
run.call(o,1,2) 


function Father(name, age) {
    this.name = name,
    this.age = age
}
function Son(name, age) {
    Father.call(this,name,age) //修改this指向为Son
}

var son = new Son('ldh',18)
console.log(son); // Son {name: "ldh", age: 18}

 

fun.apply(thisArg,[argsArg])  //第一个参数是把this指向谁,后面必须写成数组

apply的作用 1是调用函数 2是改变this指向

主要作用是如 对数组求最大值,数组本身没有求最大值得方法,但是Math有,我们通过apply改变下指向为Math


                
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值