Javascript-bind绑定函数

bind()最简单的用法是创建一个函数,使这个函数不论怎么调用都有同样的this值。
语法:fun.bind(this,arg1,arg2,….)
Bind()方法会创建一个新的函数,称为绑定函数,fun方法在this环境下调用。
该方法会传入两个参数,第一个参数作为this,第二个及以后的参数则作为函数的参数调用。
this.a = 1;
2 var module = {
3a: 2,
4getA:function() {
5return this.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()方法使函数拥有预设的初始参数,这些参数会排在最前面,传给绑定函数的参数会跟在它们后面


1function list(){
2// 让类数组arguments拥有数组的方法slice,这个函数实现了简单把类数组转换成数组
3returnArray.prototype.slice.call(arguments);
4 }
5
6 list(1,2,3); //[1,2,3]
7
8//给list绑定一个预设参数4
9var list1 = list.bind(undefined,4);
10
11 list1(); //[4]
【Javascript-bind绑定函数】12 list1(1,2,3); //[4,1,2,3]

    推荐阅读