bind()方法主要就是将函数绑定到某个对象,bind()会创建一个函数,函数体内的this对象的值会被绑定到传入bind()中的第一个参数的值,例如:f.bind(obj),实际上可以理解为obj.f(),这时f函数体内的this自然指向的是obj
举例说明:1234567891011var a = { b: function() { var func = function() { console.log(this.c); } func(); }, c: 'hello' }a.b(); // undefined 这里的this指向的是全局作用域console.log(a.c); // hello
|
|
手写bind
bind有两个特点:
- 1.本身返回一个新的函数,所以要考虑new的情况
- 2.可以“保留”参数,内部实现了参数的拼接
|
|