绑定 this
var o1 = { name: 'o1', f1: function() { console.log(this.name) }}var o2 = { name: 'o2', f2: function() { console.log(this.name) }}o1.f1.call(o2) //o2
apply
var args = [1, 2, 3]console.log.apply(console, args)// apply 会把 args 拆成一个个的参数传给函数// 相当于 console.log(1, 2, 3)
call
console.log.call(console, 1, 2, 3)// call 只能把参数一个个传入// 相当于 console.log(1, 2, 3)
bind
var log = console.log.bind(console, '这里是额定参数')log('hello') // 这里是额定参数 hello