call apply bind区别(学习笔记)

1. call

用法:改变this指向,可传递参数,参数一个一个传

var person = {
   name:"小明",
   age:18,
   eat:function(i,j){
    console.log(this.name+"吃"+i+"和"+j)
   }    
}

var stu1 = {
   name:"小红",
   age:20,
}
person.eat.call(stu1,'苹果','梨');   //小红吃苹果和梨 

 

2. apply

用法:改变this指向,可传递参数,参数以数组的形式传

 

var person = {
   name:"小明",
   age:18,
   eat:function(i,j){
    console.log(this.name+"吃"+i+"和"+j)
   }    
}

var stu1 = {
   name:"小红",
   age:20,
}
person.eat.apply(stu1,['苹果','梨']);   //小红吃苹果和梨 

3. bind

用法:改变this指向,可传递参数,参数一个一个传,和call一样,最后构建一个新的函数

var person = {
   name:"小明",
   age:18,
   eat:function(i,j){
    console.log(this.name+"吃"+i+"和"+j)
   }    
}

var stu1 = {
   name:"小红",
   age:20,
}
person.eat.bind(stu1,'苹果','梨')();   //小红吃苹果和梨 

 

posted @ 2019-10-24 15:50  Katherine蓝羽  阅读(54)  评论(0)    收藏  举报