Function.prototype.bind用法示例

2019-12-24,,,,

复制代码 代码如下:
//ECMAScript 5 Function.prototype.bind函数兼容处理
(function(){
if ( !Function.prototype.bind ) { //function(){}.bind
Function.prototype.bind = function ( o, /*参数列表*/ ) {
var self = this, boundArgs = Array.prototype.slice.call(arguments, 0);
return function(){
var args = [], i;
for ( i = 1; i < boundArgs.length; i++ ) args.push(boundArgs[i]);
for ( i = 0; i < arguments.length; i++ ) args.push(arguments[i]);
return this.apply(o, args);
}
}
}
})();

用法示例:
1、简单调用示例
复制代码 代码如下:
/*example 1*/
function f1(y, z){ return this.x + y + z;}
//调用 1
var g1 = f1.bind({x:1}, 2); //this.x = 1; y = 2;
console.loog( g1(3) ); //this.x + y + 3 = 6;
//调用 2
var g2 = f1.bind({x:1}); //this.x = 1;
console.log( g2(2,3) ); //this.x + 2 + 3 = 6

/*example 2*/
var f2(x, y){ return x + y; }
//调用
var g3 = f2.bind(null, 1); //x = 1
console.log( g3(2) ); //x + 2 = 3

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

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

您可能感兴趣的文章:

  • 让IE8浏览器支持function.bind()方法
  • ie支持function.bind()方法实现代码
  • javascript中的Function.prototye.bind
  • 深入理解JS中的Function.prototype.bind()方法
  • jQuery中的.bind()、.live()和.delegate()之间区别分析
  • JQuery中绑定事件(bind())和移除事件(unbind())
  • JQuery中Bind()事件用法分析
  • jQuery事件绑定on()、bind()与delegate() 方法详解
  • 浅谈javascript中call()、apply()、bind()的用法
  • 关于Function中的bind()示例详解

《Function.prototype.bind用法示例.doc》

下载本文的Word格式文档,以方便收藏与打印。