call apply bind 改变this 指向问题

js 专栏收录该内容
8 篇文章 0 订阅
  1. call方法
 function info(name, age) {
     this.name = name;
     this.age = age;
 }

 function people(name, age, work) {
     info.call(this, name, age);
     console.log("他叫" + this.name + "," + this.age + "岁,职业是" + work)
 }
 people("Li", 21, "IT");
  1. apply方法
 function info(name, age) {
     this.name = name;
     this.age = age;
 }

 function people(name, age, work) {
     info.apply(this, [name, age]);
     console.log("他叫" + this.name + "," + this.age + "岁,职业是" + work)
 }
 people("Zhang", 22, "IT");
  1. bind方法 不带参使用
 let info = {
     name: "Wang"
 }

 function people() {
     console.log("他叫" + this.name)
 }
 let func = people.bind(info);
 func();
  1. bind方法 带参数使用
 let info = {
     name: "Wang"
 }

 function people(m, n, o) {
     console.log(m, n, o)
 }
 let func = people.bind(null, '11');;
 func("22", "33", "44");

相同点

1.都能改变this指向

不同点

1.bind 调用执行 call apply立即执行

2.call, bind 依次传入 apply 数组传入

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

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

抵扣说明:

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

余额充值