区别bind()与call()和apply()?
* 都能指定函数中的this
* call()/apply()是立即调用函数
* bind()返回函数
var obj = {}
function foo(num1, num2) {
console.log(num1, num2)
console.log(this)
}
// foo(1, 2) //this指window
// foo.call(obj, 3, 4) 或Person.call(this,name,age) //让任意函数成为任意对象的方法
// foo.apply(obj, [5 ,6])
// foo.bind(obj, 7, 8)()
// obj.fn.call(obj2)
setTimeout(function () {
console.log(this)
}.bind(obj), 1000)
* 都能指定函数中的this
* call()/apply()是立即调用函数
* bind()返回函数
var obj = {}
function foo(num1, num2) {
console.log(num1, num2)
console.log(this)
}
// foo(1, 2) //this指window
// foo.call(obj, 3, 4) 或Person.call(this,name,age) //让任意函数成为任意对象的方法
// foo.apply(obj, [5 ,6])
// foo.bind(obj, 7, 8)()
// obj.fn.call(obj2)
setTimeout(function () {
console.log(this)
}.bind(obj), 1000)