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 相关文章推荐
List Installed Software Features
Jun 11 Javascript
jquery控制listbox中项的移动并排序
Nov 12 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
Mar 25 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
Nov 09 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
Jun 23 Javascript
Prototype框架详解
Nov 25 Javascript
基于javascript代码实现通过点击图片显示原图片
Nov 29 Javascript
详解JavaScript数组过滤相同元素的5种方法
May 23 Javascript
详解VueRouter进阶之导航钩子和路由元信息
Sep 13 Javascript
基于wordpress的ajax写法详解
Jan 02 Javascript
webpack-dev-server远程访问配置方法
Feb 22 Javascript
Vue 实现一个命令式弹窗组件功能
Sep 25 Javascript
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
discuz安全提问算法
2007/06/06 PHP
PHP代码优化之成员变量获取速度对比
2014/02/28 PHP
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
2014/09/01 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
2015/09/12 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
浅谈JavaScript中小数和大整数的精度丢失
2016/05/31 Javascript
js点击任意区域弹出层消失实现代码
2016/12/27 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
2017/01/05 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
2020/05/29 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
Python Socket传输文件示例
2017/01/16 Python
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
Django添加feeds功能的示例
2018/08/07 Python
pandas数据集的端到端处理
2019/02/18 Python
学习python分支结构
2019/05/17 Python
python 计算两个列表的相关系数的实现
2019/08/29 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
详解Python设计模式之策略模式
2020/06/15 Python
python 实现端口扫描工具
2020/12/18 Python
UNIONBAY官网:美国青少年服装品牌
2019/03/26 全球购物
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
集体备课反思
2014/02/12 职场文书
模具专业毕业生自荐书范文
2014/02/19 职场文书
硕士研究生求职自荐信范文
2014/03/11 职场文书
投资意向书范本
2014/04/01 职场文书
我的小天地教学反思
2014/04/30 职场文书
经营目标管理责任书
2014/07/25 职场文书
谢师宴邀请函
2015/02/02 职场文书
大连星海广场导游词
2015/02/10 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server