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 相关文章推荐
从零开始学习jQuery (八) 插播:jQuery实施方案
Feb 23 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
Dec 16 Javascript
js实现简单鼠标跟随效果的方法
Apr 10 Javascript
JavaScript中通过提示框跳转页面的方法
Feb 14 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
May 25 Javascript
webpack+vue.js实现组件化详解
Oct 12 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
Jul 12 Javascript
基于Vue.js实现tab滑块效果
Jul 23 Javascript
vue click.stop阻止点击事件继续传播的方法
Sep 04 Javascript
小程序server请求微信服务器超时的解决方法
May 21 Javascript
React配置子路由的实现
Jun 03 Javascript
Vue实现导入Excel功能步骤详解
Jul 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 选项及相关信息函数库
2006/12/04 PHP
PHP生成月历代码
2007/06/14 PHP
thinkphp模板继承实例简述
2014/11/26 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
PHP实现文件下载【实例分享】
2017/04/28 PHP
JavaScript获得选中文本内容的方法
2008/12/02 Javascript
简约JS日历控件 实例代码
2013/07/12 Javascript
jquery弹出关闭遮罩层实例
2013/08/06 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
jQuery实现仿淘宝带有指示条的图片转动切换效果完整实例
2015/03/04 Javascript
学习JavaScript设计模式(链式调用)
2015/11/26 Javascript
JavaScript知识点总结(四)之逻辑OR运算符详解
2016/05/31 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
Vue-cli中为单独页面设置背景色的实现方法
2018/02/11 Javascript
Angular6封装http请求的步骤详解
2018/08/13 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
node爬取新型冠状病毒的疫情实时动态
2020/02/06 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
详解Python中time()方法的使用的教程
2015/05/22 Python
Python守护进程和脚本单例运行详解
2017/01/06 Python
Python中使用支持向量机(SVM)算法
2017/12/26 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
matplotlib实现热成像图colorbar和极坐标图的方法
2018/12/13 Python
利用python list完成最简单的DB连接池方法
2019/08/09 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
Turnbull & Asser官网:英国皇室御用的顶级定制衬衫
2019/01/31 全球购物
error和exception有什么区别
2012/10/02 面试题
linux系统都有哪些运行级别
2012/04/15 面试题
口才训练演讲稿范文
2014/09/16 职场文书
房产销售独家委托书范本
2014/10/01 职场文书
药店收银员岗位职责
2015/04/07 职场文书