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 相关文章推荐
javascript 延迟加载技术(lazyload)简单实现
Jan 17 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
Jul 23 Javascript
Javascript保存网页为图片借助于html2canvas库实现
Sep 05 Javascript
jQuery 选择器详解
Jan 19 Javascript
JS给Array添加是否包含字符串的简单方法
Oct 29 Javascript
JavaScript中for循环的几种写法与效率总结
Feb 03 Javascript
jQuery 表单序列化实例代码
Jun 11 jQuery
JavaScript定时器setTimeout()和setInterval()详解
Aug 18 Javascript
深入理解Vue 单向数据流的原理
Nov 09 Javascript
Vue+mui实现图片的本地缓存示例代码
May 24 Javascript
Angular 实现输入框中显示文章标签的实例代码
Nov 07 Javascript
JavaScript 如何计算文本的行数的实现
Sep 14 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代码
2010/07/17 PHP
php下pdo的mysql事务处理用法实例
2014/12/27 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
jQuery MD5加密实现代码
2010/03/15 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
js在指定位置增加节点函数insertBefore()用法实例
2015/01/12 Javascript
JavaScript自定义数组排序方法
2015/02/12 Javascript
hovertree插件实现二级树形菜单(简单实用)
2016/12/28 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
原生js更改css样式的两种方式
2017/03/15 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
JavaScript实现旋转轮播图
2020/08/18 Javascript
js HTML5 canvas绘制图片的方法
2017/09/08 Javascript
shiro授权的实现原理
2017/09/21 Javascript
Node层模拟实现multipart表单的文件上传示例
2018/01/02 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
vue调用语音播放的方法
2019/09/27 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
2020/01/05 Javascript
JS绘图Flot应用图形绘制异常解决方案
2020/10/16 Javascript
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
Python实现基于权重的随机数2种方法
2015/04/28 Python
Python 实现购物商城,含有用户入口和商家入口的示例
2017/09/15 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
2017/12/15 Python
python实现按长宽比缩放图片
2018/06/07 Python
Django框架表单操作实例分析
2019/11/04 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
Parfumdreams英国:香水和化妆品
2019/05/10 全球购物
vue实现倒计时功能
2021/03/24 Vue.js
工厂实习感言
2014/01/14 职场文书
竞聘上岗演讲
2014/05/19 职场文书
服务员岗位职责
2015/02/03 职场文书
给校长的建议书作文500字
2015/09/14 职场文书
Python爬虫进阶之Beautiful Soup库详解
2021/04/29 Python