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 相关文章推荐
JS input 数字验证代码
Jul 30 Javascript
屏蔽Flash右键信息的js代码
Jan 17 Javascript
防止文件缓存的js代码
Jan 10 Javascript
JS获取浏览器语言动态加载JS文件示例代码
Oct 31 Javascript
js实现仿qq消息的弹出窗效果
Jan 06 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
Mar 04 Javascript
微信小程序图片自适应支持多图实例详解
Jun 21 Javascript
基于Bootstrap table组件实现多层表头的实例代码
Sep 07 Javascript
js用类封装pop弹窗组件
Oct 08 Javascript
vue项目中api接口管理总结
Apr 20 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
Jun 29 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
Oct 29 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
探讨:web上存漏洞及原理分析、防范方法
2013/06/29 PHP
php比较两个字符串长度的方法
2015/07/13 PHP
让你的PHP7更快之Hugepage用法分析
2016/05/31 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
PHP获取数组中单列值的方法
2017/06/10 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
从js向Action传中文参数出现乱码问题的解决方法
2013/12/29 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
js获取及修改网页背景色和字体色的方法
2015/12/29 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
js实现自动轮换选项卡
2017/01/13 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
2017/09/05 jQuery
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
JS实现贪吃蛇游戏
2019/11/15 Javascript
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
Python3 伪装浏览器的方法示例
2017/11/23 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
python的dataframe和matrix的互换方法
2018/04/11 Python
python学生管理系统学习笔记
2019/03/19 Python
Python数据结构与算法(几种排序)小结
2019/06/22 Python
python中append实例用法总结
2019/07/30 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
深入浅析Python代码规范性检测
2020/07/31 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
Lookfantastic俄罗斯:欧洲在线化妆品零售商
2019/08/06 全球购物
就业推荐表自我鉴定
2013/10/29 职场文书
机械专业应届生求职信
2013/12/12 职场文书
党员个人思想汇报
2013/12/28 职场文书
光荣入党自我鉴定
2014/01/22 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
用Python将GIF动图分解成多张静态图片
2021/06/11 Python
Spring事务管理下synchronized锁失效问题的解决方法
2022/03/31 Java/Android
Python如何快速找到多个字典中的公共键(key)
2022/04/29 Python