开发手册 欢迎您!
软件开发者资料库

Js(Javascript)中的bind方法的使用

通过function的bind方法来调用方法,可以改变方法的this的对象,并且还可以传入方法参数。bind返回对应方法,不会立即执行,调用返回的方法才会执行。apply和call则是立即调用。这也是它们的主要区别。主要是用于面向对象的编程中。

Function.bind(obj[,param1,param2,...])

obj:这个对象将代替Function类里this对象

param1:Function的第一个参数。param2: Function的第二个参数。

返回值是个方法。

示例代码如下:

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();//通过bind调用saysay.bind(m,"abc",20)();//返回的是方法,还要在执行一下。//用call调用say.call(m,"abc",20);//用apply调用say.apply(m,["abc",20]);