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 相关文章推荐
accesskey 提交
Jun 26 Javascript
比较简单实用的使用正则三种版本的js去空格处理方法
Nov 18 Javascript
为调试JavaScript添加输出窗口的代码
Feb 07 Javascript
javascript 传统事件模型构造的事件监听器实现代码
May 31 Javascript
jquery插件制作 图片走廊 gallery
Aug 17 Javascript
用Javascript获取页面元素的具体位置
Dec 09 Javascript
深入理解JS中的变量及作用域、undefined与null
Mar 04 Javascript
select多选 multiple的使用示例
Jun 16 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
Mar 09 Javascript
利用Javascript实现BMI计算器
Aug 16 Javascript
详解原生JS动态添加和删除类
Mar 26 Javascript
vue el-upload上传文件的示例代码
Dec 21 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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
2015/04/15 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
PHP设计模式之简单工厂和工厂模式实例分析
2019/03/25 PHP
强制设为首页代码
2006/06/19 Javascript
一个收集图片的bookmarlet(js 刷新页面中的图片)
2010/05/27 Javascript
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
Jquery chosen动态设置值实例介绍
2013/08/08 Javascript
可以用鼠标拖动的DIV实现思路及代码
2013/10/21 Javascript
JavaScript判断文件上传类型的方法
2014/09/02 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
2015/07/17 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
vue修改vue项目运行端口号的方法
2017/08/04 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
2018/04/12 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
[02:32]DOTA2完美大师赛场馆静安体育中心观赛全攻略
2017/11/08 DOTA
爬山算法简介和Python实现实例
2014/04/26 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
应届生服务员求职信
2013/10/31 职场文书
党委书记岗位职责
2013/11/24 职场文书
毕业生的自我评价
2013/12/30 职场文书
参观接待方案
2014/03/17 职场文书
2014最新股权信托合同协议书
2014/11/18 职场文书
论文答谢词
2015/01/20 职场文书
2015年助理工程师工作总结
2015/04/03 职场文书
2015年小学教师培训工作总结
2015/07/21 职场文书
医护人员继续教育学习心得体会
2016/01/19 职场文书