bind方法
- bind方法的会将一个函数绑定到对象上,返回一个函数作为该对象的方法来调用
第一个参数代表着this的指向
function foo(x,y){
console.log(this)
console.log(x+y)
}
foo() // window
let obj = {}
// 绑定对象
let a = foo.bind(obj) // 返回一个函数
a() // obj
- 注意:如果绑定null的话,this还是会指向window
// 绑定null
let a = foo.bind(null)
a() // window
第二个参数开始代表着实参
function foo(x,y){
console.log(x+y)
}
let a = foo.bind(null,3)
a(2) //5
bind的使用
在闭包函数里使用
let obj = {
foo(){
return function (){
console.log(this)
}
}
}
obj.foo()() //window
- 使用bind来绑定this
let obj = {
foo(){
return function (){
console.log(this)
}.bind(this)
}
}
obj.foo()() //obj