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,'苹果','梨')(); //小红吃苹果和梨

浙公网安备 33010602011771号