封装一个bind
2019-03-12 本文已影响0人
广告位招租
首先看一下bind的正常使用
let obj = {
name: 'zhangsan'
}
let func = function() {
console.log(this.name)
}.bind(obj) // 扩展作用域
func()
页面输出
image.png
bind不同于call和apply,他不是立即执行的,只有当函数执行时,才会给该函数扩展作用域
针对以上特点
封装一个bind
Function.prototype._bind = function(more) {
let _that = this // 保存一下this,this永远指向调用方,这里的this将会指向调用该方法的函数
return function() {
_that.call(more)
}
}
let func = function() {
console.log(this.name)
}._bind(obj)
func() // zhangsan