konghaowei
call、apply、bindfunction自带的方法作用是改变function中的this指向
 
call、apply、bind共同点:
(1)改变functionthis对象的指向
(2)第一个参数都是this要指向的对象
(3)后续参数继续传参
 
各自特点:
call:接受连续参数
apply:接受数组参数
bind:不会立即执行,再次调用才执行
apply、call作用完全一样只是接受参数方式不太一样
举个例子:
var a = {
    name : "Tom",
    sex : true,
    age : 18,
    qqq : function(school,grade) {
        console.log(
            "名称:"+this.name + " ;" +
            "性别:"+this.sex + " ;" +
            "年龄:"+this.age + " ;" +
            "学校:"+school + " ;" +
            "年级:"+grade + " ;" 
        )
    }
}
var b = {
    name : "Anny",
    sex : false,
    age : 17
}

// b "继承" a 的属性和方法。绑定后会立即执行函数

a.qqq.call(b,"实验小学","一年级"); // 接受连续参数

a.qqq.apply(b,["实验小学","一年级"]); // 接受数组参数

var c = a.qqq.bind(b); // 不会立即执行
c("实验小学","一年级") // 再次调用就开始执行

a.qqq.bind(b)("实验小学","一年级") // 这样子写也行(反正也是调用)

过程解释:

 

最后推荐一些我学习call、apply、bind时收藏的一些写的不错的文章:
https://www.cnblogs.com/pssp/p/5215621.html#

https://www.cnblogs.com/libin-1/p/6069031.html

 

相关文章:

  • 2019-11-18
  • 2019-06-27
  • 2021-01-16
  • 2019-07-14
  • 2019-11-20
  • 2018-02-02
  • 2020-01-03
  • 2021-10-16
猜你喜欢
  • 2019-10-20
  • 2019-03-18
  • 2019-03-14
  • 2021-03-10
  • 2019-09-06
  • 2021-12-29
  • 2019-11-14
相关资源
相似解决方案