.call() .apply() .bind()方法

119 阅读1分钟
function yo(name,a) {
    console.log('yo!' + name + ',我是: ' +  this.name)
}

var whh = {
    name: '王花花'
}
var lsd = {
    name: '李栓蛋'
}
var bad = {
    name: 'Bind不是立即执行,它是返回一个新的function'
}

yo.call(whh,'我是参数1') // 相当于让yo这个方法的this指向whh这个变量,接下来传的就是参数了
yo.apply(lsd,['赵可爽']) // call 和 apply都是改变this指向 , 传参不同,都是立即调用
var yoBind = yo.bind(bad,'赵可爽(参数name)') // bind不是立即调用,而是保存在变量中,想用的时候再调用
yoBind()