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]
推荐阅读
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗
- 概率论/统计学|随机变量 的 分布函数 与 概率密度函数 的区别
- 7、前端--jQuery简介、基本选择器、基本筛选器、属性选择器、表单选择器、筛选器方法、节点操作、绑定事件
- vue组件中为何data必须是一个函数()
- 事件解绑与解绑的兼容代码
- iOS-Swift-map|iOS-Swift-map filter reduce、函数式编程
- R语言|R语言 函数