共同点
js中的call,apply,bind功能都是为了改变函数
体内的this
指向。用法:函数.call();函数.apply();函数.bind();
不同点
1、call,apply调用后立即执行,bind调用后返回的是一个函数,不会立即执行。
2、参数不同,call和bind的参数是挨个输入,apply的参数是数组
var name = "global_zhangsan";
var obj = {name:'obj_zhangsan'};
function fun(){
console.log(this,this.name);
};
function fun2(name age){
console.log(this);
};
fun.call(obj);
fun.apply(obj);
fun.bind(obj)();
fun2.call(obj,'li',25);
fun2.apply(obj,['li',25]);
fun2.bind(obj,'li',25)();