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 相关文章推荐
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
Jun 26 Javascript
html数组字符串拼接的最快方法
Sep 16 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
Apr 12 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
Dec 18 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车
Nov 30 Javascript
微信小程序 自己制作小组件实例详解
Dec 22 Javascript
完美解决axios在ie下的兼容性问题
Mar 05 Javascript
细述Javascript的加法运算符的具体使用
Oct 18 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
Nov 01 Javascript
JavaScript缺少insertAfter解决方案
Jul 03 Javascript
探索浏览器页面关闭window.close()的使用详解
Aug 21 Javascript
Vue CLI中模式与环境变量的深入详解
May 30 Vue.js
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代码书写习惯优化小结
2013/06/20 PHP
php教程之phpize使用方法
2014/02/12 PHP
Thinkphp整合微信支付功能
2016/12/14 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
什么是JavaScript
2009/08/13 Javascript
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
获取offsetTop和offsetLeft值的js代码(兼容)
2013/04/16 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
js实现网页标题栏闪烁提示效果实例分析
2014/11/20 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
jQuery UI设置固定日期选择特效代码分享
2015/08/27 Javascript
javascript中href和replace的比较(详解)
2016/11/25 Javascript
js处理层级数据结构的方法小结
2017/01/17 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
vue router demo详解
2017/10/13 Javascript
vue如何判断dom的class
2018/04/26 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
nodejs基础之常用工具模块util用法分析
2018/12/26 NodeJs
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
vue element upload组件 file-list的动态绑定实现
2019/10/11 Javascript
原生js实现随机点名功能
2019/11/05 Javascript
Python输入二维数组方法
2018/04/13 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
Python之pymysql的使用小结
2019/07/01 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
python进度条显示之tqmd模块
2020/08/22 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
利用css3实现的简单的鼠标悬停按钮
2014/11/04 HTML / CSS
施华洛世奇美国官网:SWAROVSKI美国
2018/02/08 全球购物
精选干货:Java精选笔试题附答案
2014/01/18 面试题
优秀党员获奖感言
2014/02/18 职场文书
高一学生评语大全
2014/04/25 职场文书
2015新年寄语(一句话)
2014/12/08 职场文书
为什么中国式养孩子很累?
2019/08/07 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python