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 相关文章推荐
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
Sep 12 Javascript
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
Jul 26 Javascript
JavaScript代码复用模式实例分析
Dec 02 Javascript
JavaScript设计模式之外观模式实例
Oct 10 Javascript
JavaScript中的操作符==与===介绍
Dec 31 Javascript
谈谈JavaScript类型系统之Math
Jan 06 Javascript
codeMirror插件使用讲解
Jan 16 Javascript
javascript事件的传播基础实例讲解(35)
Feb 14 Javascript
Vue.js教程之axios与网络传输的学习实践
Apr 29 Javascript
通过layer实现可输入的模态框的例子
Sep 27 Javascript
javascript使用canvas实现饼状图效果
Sep 08 Javascript
动态实现element ui的el-table某列数据不同样式的示例
Jan 22 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
手冲咖啡应该是现代精品咖啡店的必备选项吗?
2021/03/03 冲泡冲煮
php分页思路以及在ZF中的使用
2012/05/30 PHP
php文件上传的简单实例
2013/10/19 PHP
PHP解决URL中文GBK乱码问题的两种方法
2014/06/03 PHP
PHP实现上传图片到数据库并显示输出的方法
2018/05/31 PHP
动态加载js的几种方法
2006/10/23 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
在JavaScript里防止事件函数高频触发和高频调用的方法
2014/09/06 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
canvas实现手机端用来上传用户头像的代码
2016/10/20 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
jQuery Validate表单验证插件实现代码
2017/06/08 jQuery
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
一文快速了解JQuery中的AJAX
2019/05/31 jQuery
layer.open提交子页面的form和layedit文本编辑内容的方法
2019/09/27 Javascript
使用Bootstrap做一个朝代历史表
2019/12/10 Javascript
vuex(vue状态管理)的特殊应用案例分享
2020/03/03 Javascript
react基本安装与测试示例
2020/04/27 Javascript
将Vue组件库更换为按需加载的方法步骤
2020/05/06 Javascript
React+EggJs实现断点续传的示例代码
2020/07/07 Javascript
JavaScript实现点击出现子菜单效果
2021/02/08 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python使用修饰器执行函数的参数检查功能示例
2017/09/26 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
python版本的仿windows计划任务工具
2018/04/30 Python
Python 实现自动导入缺失的库
2019/10/29 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
如何用css3实现switch组件开关的方法
2018/02/09 HTML / CSS
HTML5拖拉上传文件的简单实例
2017/01/11 HTML / CSS
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
平安建设实施方案
2014/03/19 职场文书
jquery插件实现悬浮的菜单
2021/04/24 jQuery