function a(a, b) { this.aa = 1; console.log(this, a, b); } function b(a, b) { this.bb = 2; console.log(this, a, b); } function c(a, b) { this.cc = 2; console.log(this, a, b); } // 改变函数指针 // call 立即执行 与apply类似区别在参数 const aaa = a.call(this, '这是call11', '这是call2'); // apply 立即执行 与call类似区别在参数装到数组里面 const bbb = b.apply(this, ['这是apply1', '这是apply2']); // bind 不会立即执行,参数与call一致 const ccc = c.bind(this, 'bind1', 'bind2'); ccc()
{ aa: 1 } 这是call11 这是call2 { aa: 1, bb: 2 } 这是apply1 这是apply2 { aa: 1, bb: 2, cc: 2 } bind1 bind2