Javascript-bind绑定函数

来源:互联网 发布:idc 2012年手机数据 编辑:程序博客网 时间:2024/05/15 23:50

bind()最简单的用法是创建一个函数,使这个函数不论怎么调用都有同样的this值。

语法:fun.bind(this,arg1,arg2,….)

Bind()方法会创建一个新的函数,称为绑定函数,fun方法在this环境下调用。

该方法会传入两个参数,第一个参数作为this,第二个及以后的参数则作为函数的参数调用。

   this.a = 1;

 2 var module = {

 3     a: 2,

 4    getA:function() {

 5     returnthis.a;   

 6     }

 7 };

 8 module.getA();//2

 9

10var getA1 = module.getA;

11// getA在外部调用,此时的this指向了全局对象

12getA1();//1

13

14// 再把getA1方法绑定到module环境上

15var getA2 = getA1.bind(module);

16getA2();

从上面的例子可以看出,为什么要创建绑定函数,就是当我们调用某些函数的时候是要在特定环境下才能调用到,所以我们就要把函数放在特定环境下,就是使用bind把函数绑定到特定的所需的环境下。

2.让函数拥有预设的参数

使用bind()方法使函数拥有预设的初始参数,这些参数会排在最前面,传给绑定函数的参数会跟在它们后面

 

 1 function list(){

 2    // 让类数组arguments拥有数组的方法slice,这个函数实现了简单把类数组转换成数组

 3    returnArray.prototype.slice.call(arguments);

 4 }

 5

 6 list(1,2,3);//[1,2,3]

 7

 8 //给list绑定一个预设参数4

 9 var list1 = list.bind(undefined,4);

10

11 list1();//[4]

12 list1(1,2,3);//[4,1,2,3]

原创粉丝点击