bind()
API
function foo(b) {
console.log(this.a + b)
}
var obj = {
a: 0
}
// 创建了一个新函数
var bar = foo.bind(obj, 1)
// 再进行调用
bar() // 1function foo() {
console.log(this.a)
}
var obj = {
a: 0
}
var a = 'oops, global'
// 无效绑定
var bar = foo.bind(obj)
// 使用 new 调用
new bar() // undefined, 注意不是绑定到了全局,而是绑定到一个新的空对象上了实现细节
应用
柯里化
配合 setTimeout
手写实现 bind()
Last updated