bind
- 返回一个新函数,但不执行
- 绑定this和部分参数
- 如是箭头函数,无法改变 this,只能改变参数
Function.prototype.customBind = function ( context, ...bindArgs ) {
const self = this // 当前函数本身
return function ( ...args ) {
const newArgs = bindArgs.concat( args )
return self.apply( context, newArgs )
}
}
function fn1 ( a, b, c ) {
console.log( this, a, b, c )
}
const fn2 = fn1.customBind( { a: 1 }, 10, 20, 30 )
- call 和 apply 应用
- bind 返回一个新函数(不执行),call 和apply 会立即执行函数
- 绑定this
- 传入执行参数