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 相关文章推荐
prototype class详解
Sep 07 Javascript
document.getElementById为空或不是对象的解决方法
Jan 24 Javascript
写自已的js类库需要的核心代码
Jul 16 Javascript
jquery.qrcode在线生成二维码使用示例
Aug 21 Javascript
javascripit实现密码强度检测代码分享
Dec 12 Javascript
jQuery Mobile 和 Kendo UI 的比较
May 05 Javascript
jQuery无缝轮播图代码
Dec 22 Javascript
bootstrap表格分页实例讲解
Dec 30 Javascript
Router解决跨模块下的页面跳转示例
Jan 11 Javascript
vue 自定义指令自动获取文本框焦点的方法
Aug 25 Javascript
Node.js API详解之 dgram模块用法实例分析
Jun 05 Javascript
解决Vue watch里调用方法的坑
Nov 07 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
php环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
2006/11/17 PHP
整合了前面的PHP数据库连接类~~做成一个分页类!
2006/11/25 PHP
php cookie 登录验证示例代码
2009/03/16 PHP
php生成随机数的三种方法
2014/09/10 PHP
Smarty环境配置与使用入门教程
2016/05/11 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
javascript获取当前ip的代码
2009/05/10 Javascript
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
jquery动画1.加载指示器
2012/08/24 Javascript
JQuery的ready函数与JS的onload的区别详解
2013/11/21 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
python计算时间差的方法
2015/05/20 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
python 消费 kafka 数据教程
2019/12/21 Python
Pytoch之torchvision.transforms图像变换实例
2019/12/30 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
Python json格式化打印实现过程解析
2020/07/21 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
基于python判断字符串括号是否闭合{}[]()
2020/09/21 Python
pycharm 关闭search everywhere的解决操作
2021/01/15 Python
连锁经营管理专业大学生求职信
2013/10/30 职场文书
培训演讲稿范文
2014/01/12 职场文书
初三班主任寄语大全
2014/04/04 职场文书
北京奥运会主题口号
2014/06/13 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
营销与策划实训报告
2014/11/05 职场文书
健康证明
2015/06/19 职场文书
mybatis使用oracle进行添加数据的方法
2021/04/27 Oracle
golang 实现对Map进行键值自定义排序
2021/04/28 Golang