zl程序教程

您现在的位置是:首页 >  其它

当前栏目

Function.prototype.bind用法示例

示例 用法 Function bind prototype
2023-06-13 09:15:05 时间
复制代码代码如下:

//ECMAScript5Function.prototype.bind函数兼容处理
(function(){
if(!Function.prototype.bind){//function(){}.bind
Function.prototype.bind=function(o,/*参数列表*/){
varself=this,boundArgs=Array.prototype.slice.call(arguments,0);
returnfunction(){
varargs=[],i;
for(i=1;i<boundArgs.length;i++)args.push(boundArgs[i]);
for(i=0;i<arguments.length;i++)args.push(arguments[i]);
returnthis.apply(o,args);
}
}
}
})();

用法示例:
1、简单调用示例
复制代码代码如下:

/*example1*/
functionf1(y,z){returnthis.x+y+z;}
//调用1
varg1=f1.bind({x:1},2);//this.x=1;y=2;
console.loog(g1(3));//this.x+y+3=6;
//调用2
varg2=f1.bind({x:1});//this.x=1;
console.log(g2(2,3));//this.x+2+3=6

/*example2*/
varf2(x,y){returnx+y;}
//调用
varg3=f2.bind(null,1);//x=1
console.log(g3(2));//x+2=3

2、DOM调用示例
复制代码代码如下:
vareleBtn=document.getElementById("button")
,eleText=document.getElementById("text");

eleBtn.onclick=function(color){
color=color||"#003399";
this.style.color=color;//此时的this指向eleText
}.bind(eleText,"#cd0000");