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 相关文章推荐
html中table数据排序的js代码
Aug 09 Javascript
用js实现trim()的解决办法
Apr 16 Javascript
写得不错的jquery table鼠标经过变色代码
Sep 27 Javascript
判定是否原生方法的JS代码
Nov 12 Javascript
$.each与$().each的区别示例介绍
Mar 20 Javascript
Javascript基础教程之比较操作符
Jan 18 Javascript
js实现a标签超链接提交form表单的方法
Jun 24 Javascript
Vue.js每天必学之数据双向绑定
Sep 05 Javascript
jQuery中的on与bind绑定事件区别实例详解
Feb 28 Javascript
vue.js开发环境搭建教程
May 04 Javascript
JS 实现分页打印功能
May 16 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
Nov 15 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
全国FM电台频率大全 - 10 江苏省
2020/03/11 无线电
PHP 中的类
2006/10/09 PHP
php生成EXCEL的东东
2006/10/09 PHP
php页面防重复提交方法总结
2013/11/25 PHP
php生成xml时添加CDATA标签的方法
2014/10/17 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
Jquery 插件开发笔记整理
2011/01/17 Javascript
JavaScript获取按钮所在form表单id的方法
2015/04/02 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
Javascript中setTimeOut和setInterval的定时器用法
2015/06/12 Javascript
在Node.js中使用HTTP上传文件的方法
2015/06/23 Javascript
深入浅析Nodejs的Http模块
2017/06/20 NodeJs
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
VUE前端cookie简单操作
2017/10/17 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
layui table 参数设置方法
2018/08/14 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
VUE写一个简单的表格实例
2019/08/06 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
用Python操作字符串之rindex()方法的使用
2015/05/19 Python
深入源码解析Python中的对象与类型
2015/12/11 Python
Django 外键的使用方法详解
2019/07/19 Python
python 调试冷知识(小结)
2019/11/11 Python
PyCharm中关于安装第三方包的三个建议
2020/09/17 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
工程班组长岗位职责
2013/12/30 职场文书
中学运动会广播稿
2014/01/19 职场文书
生物科学专业职业规划书范文
2014/02/11 职场文书
学校志愿者活动总结
2014/06/27 职场文书
决心书格式范文
2015/09/23 职场文书
python ansible自动化运维工具执行流程
2021/06/24 Python