一、call()
1.作用:调用函数并修改函数内部this指向
2.语法:fun.call(thisArg,arg1,arg2...);
thisArg:当前调用函数this的指向。
arg1,arg2...:向函数传递其他参数。
3.call()主要用于子元素继承父元素。
例:function Father(uname,age){
this.uname=uname;
this.age=age;
}
function Son{
Father.call(this,uname,age);//继承父元素的uname和age属性
}
二、apply()
1.作用:调用函数并修改this指向
2.语法:fun.apply(thisArg,[argArray]);
它的函数的传递值必须为一个数组。
3.主要应用:利用apply借助于数学内置对象求最大值最小值。
例:var arr=[2,33,6,78];
var max=Math.max.apply(Math.arr);
三、bind()
1.作用:不会调用函数但会改变this指向。
2.语法:fun.bind(thisArg,arg1,arg2...);
3.注意:返回值由指定的this值和初始化参数改造的原函数拷贝。
返回的是一个this值改变的函数。
一般用于如果有的函数不需要先调用但还要改变this值时用bind()。