Function.apply(obj,args)方法能接收两个参数,简单说apply方法作用就是给类或方法中的this赋值。所以学会这个方法首先要知道this的作用。(this的用法可以看一下这个链接:http://www.cjavapy.com/article/8/ )
obj:这个对象将代替Function类里this对象
args:这个是数组,它将作为参数传给Function(args–>arguments)
示例代码如下:function man()
{
this.Name="man";
this.SayName=function(){
alert(this.Name);
}
}
function woman()
{
this.Name="woman";
this.SayName=function(){
alert(this.Name);
}
}
function say(word,age)
{
//只有say方法的this是man,或是woman对象才可以调用,say方法本身是没有SayName方法的。
if(this.SayName)
this.SayName();
alert(word+age);
}
var m=new man();
var w=new woman();
//通过apply方法调用say
say.apply(m,["abc",20]);
//用call调用,call和apply就传参数方式不同,两个方法的第一个参数是相同的,剩下call直接写say方法的参数就可以了,而apply是通过数组传入say方法参数的。
say.call(m,"abc",20);
用bind调用
say.bind(m,"abc",20)();//返回的是方法,还要在执行一下。