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 相关文章推荐
Mootools 1.2教程 排序类和方法简介
Sep 15 Javascript
JavaScript实现x秒后自动跳转到一个页面
Jan 03 Javascript
JQuery onload、ready概念介绍及使用方法
Apr 27 Javascript
js获取页面description的方法
May 21 Javascript
javascript实现方法调用与方法触发小结
Mar 26 Javascript
JS获取子窗口中返回的数据实现方法
May 28 Javascript
微信小程序 canvas API详解及实例代码
Oct 08 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
Dec 04 Javascript
jquery学习笔记之无new构建详解
Dec 07 jQuery
解决JavaScript layui 下拉框不显示的问题
Aug 14 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
Nov 27 jQuery
微信头像地址失效踩坑记附带解决方案
Sep 23 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原理之错误抑制与内嵌HTML分析
2011/05/02 PHP
php中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
PHP实现获取中英文首字母
2015/06/19 PHP
PHP实现添加购物车功能
2017/03/06 PHP
JS 控制小数位数的实现代码
2011/08/02 Javascript
js实现的复制兼容chrome和IE
2014/04/03 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
JavaScript中string对象
2015/06/12 Javascript
每天一篇javascript学习小结(String对象)
2015/11/18 Javascript
js两种拼接字符串的简单方法(必看)
2016/09/02 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
vue awesome swiper异步加载数据出现的bug问题
2018/07/03 Javascript
vue实现动态按钮功能
2019/05/13 Javascript
原生js实现二级联动菜单
2019/11/27 Javascript
对vue生命周期的深入理解
2020/12/03 Vue.js
python 解析html之BeautifulSoup
2009/07/07 Python
python中pass语句用法实例分析
2015/04/30 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
用pickle存储Python的原生对象方法
2017/04/28 Python
python利用跳板机ssh远程连接redis的方法
2019/02/19 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
2020/03/12 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
HTML5拖放API实现自动生成相框功能
2020/04/07 HTML / CSS
英国女性时尚品牌:Apricot
2018/12/04 全球购物
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
int和Integer有什么区别
2013/05/25 面试题
人力资源求职信
2014/05/25 职场文书
2014教师“四风问题”对照检查材料思想汇报
2014/09/16 职场文书
2014领导班子专题民主生活会对照检查材料思想汇报
2014/09/23 职场文书
搞笑婚礼主持词开场白
2015/11/24 职场文书
导游词之南昌滕王阁
2019/11/29 职场文书
Pytest中conftest.py的用法
2021/06/27 Python
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技