在js中,call、apply、bind是Function对象自带的三个方法,主要用于改变函数中this指向对象
1、共同点:
a、三者都是用来改变函数的this指针的指向
b、三者第一个参数都是this要指向的对象
2、区别:
a、call、apply立即调用执行,bind返回函数,延后调用执行
b、call、bind有相同传参规则,apply第2个参数传递数组
3、使用方法
a、call
语法:
call([thisObj [,arg1[,arg2[,、、、]]]])
调用方法:
function fn(a,b){ //定义调用call函数
console.log(this,a,b)
}
function funObj(){} //定义传递的函数
var obj={id:"call"} //定义对象obj
fn.call() ; //this为window
fn.call(null); //this为window
fn.call(undefined); ///this为window
fn.call(funObj); //function funObj(){}
fn.call(obj);//Object