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中各种数据的类型方法之typeof与0bject.prototype.toString讲解
Nov 07 Javascript
JS简单实现动画弹出层效果
May 05 Javascript
JavaScript弹出对话框的三种方式
Mar 23 Javascript
js实现登录验证码
Dec 22 Javascript
Angular中实现树形结构视图实例代码
May 05 Javascript
修改node.js默认的npm安装目录实例
May 15 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
Nov 30 Javascript
vue cli 3.0 搭建项目的图文教程
May 17 Javascript
在vue项目中使用sass语法问题
Jul 18 Javascript
npx create-react-app xxx创建项目报错的解决办法
Feb 17 Javascript
解决vue项目,npm run build后,报路径错的问题
Aug 13 Javascript
Vue详细的入门笔记
May 10 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/13 PHP
php使用正则表达式获取图片url的方法
2015/01/16 PHP
codeigniter中view通过循环显示数组数据的方法
2015/03/20 PHP
PHP中file_exists使用中遇到的问题小结
2016/04/05 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
2020/05/15 PHP
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
php 中序列化和json使用介绍
2013/07/08 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
js中substring和substr两者区别和使用方法
2015/11/09 Javascript
javascript 解决浏览器不支持的问题
2016/09/24 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
详解Webpack + ES6 最新环境搭建与配置
2018/06/04 Javascript
jQuery中$原理实例分析
2018/08/13 jQuery
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
node app 打包工具pkg的具体使用
2019/01/17 Javascript
Vue Autocomplete 自动完成功能简单示例
2019/05/25 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
pygame加载中文名mp3文件出现error
2017/03/31 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
Python基于DB-API操作MySQL数据库过程解析
2020/04/23 Python
Web时代变迁及html5与html4的区别
2016/01/06 HTML / CSS
html2canvas生成清晰的图片实现打印的示例代码
2019/09/30 HTML / CSS
详解如何获取localStorage最大存储大小的方法
2020/05/21 HTML / CSS
物流管理专业大学生自荐信
2013/10/04 职场文书
企业演讲稿范文
2013/12/28 职场文书
置业顾问岗位职责
2014/03/02 职场文书
优秀护士先进事迹
2014/05/08 职场文书
初中优秀教师事迹材料
2014/08/18 职场文书
食堂采购员岗位职责
2015/04/03 职场文书
你会写报告?产品体验报告到底该怎么写?
2019/08/14 职场文书
Html5获取用户当前位置的几种方式
2022/01/18 HTML / CSS
MySQL多表查询机制
2022/03/17 MySQL