Function.prototype.bind用法示例


Posted in Javascript onSeptember 16, 2013
//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");
Javascript 相关文章推荐
javascript实现确定和取消提示框效果
Jul 10 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
Dec 31 Javascript
javascript如何实现360度全景照片问题汇总
Apr 04 Javascript
手机Web APP如何实现分享多平台功能
Aug 19 Javascript
JavaScript中boolean类型之三种情景实例代码
Nov 21 Javascript
jQuery Pagination分页插件使用方法详解
Feb 28 Javascript
Vue 过渡实现轮播图效果
Mar 27 Javascript
通过封装scroll.js 获取滚动条的值
Jul 13 Javascript
select2 ajax 设置默认值,初始值的方法
Aug 09 Javascript
vue-cli3.0使用及部分配置详解
Aug 29 Javascript
vue中rem的配置的方法示例
Aug 30 Javascript
对vue生命周期的深入理解
Dec 03 Vue.js
javascript简单事件处理和with用法介绍
Sep 16 #Javascript
js的.innerHTML = &quot;&quot;IE9下显示有错误的解决方法
Sep 16 #Javascript
js window.print实现打印特定控件或内容
Sep 16 #Javascript
基于jquery的网站幻灯片切换效果焦点图代码
Sep 15 #Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
Sep 15 #Javascript
如何解决Jquery库及其他库之间的$命名冲突
Sep 15 #Javascript
异步动态加载js与css文件的js代码
Sep 15 #Javascript
You might like
php使用NumberFormatter格式化货币的方法
2015/03/21 PHP
thinkPHP模型初始化实例分析
2015/12/03 PHP
学习php设计模式 php实现装饰器模式(decorator)
2015/12/07 PHP
PHP命名空间和自动加载类
2016/04/03 PHP
ThinkPHP中create()方法自动验证表单信息
2017/04/28 PHP
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
js 数值项目的格式化函数代码
2010/05/14 Javascript
JavaScript打开word文档的实现代码(c#)
2012/04/16 Javascript
Javascript 面向对象(三)接口代码
2012/05/23 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
2013/04/01 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
2015/12/24 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
微信js-sdk 录音功能的示例代码
2019/11/01 Javascript
ES6 Iterator遍历器原理,应用场景及相关常用知识拓展详解
2020/02/15 Javascript
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
Python如何实现守护进程的方法示例
2017/02/08 Python
python实现飞机大战微信小游戏
2020/03/21 Python
详解python中init方法和随机数方法
2019/03/13 Python
Pandas之groupby( )用法笔记小结
2019/07/23 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
Python使用Selenium模拟浏览器自动操作功能
2020/09/08 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
生物技术专业研究生自荐信
2013/09/22 职场文书
后勤人员自我鉴定
2013/10/20 职场文书
2013年高中生自我评价
2013/10/23 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
2014年社区综治工作总结
2014/11/17 职场文书
欠款纠纷起诉状
2015/05/19 职场文书
电力培训学习心得体会
2016/01/11 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书
Python+OpenCV实现在图像上绘制矩形
2022/03/21 Python