this 指向
- 预编译时this指向window,new时this指向函数对象
- 全局作用域里,this指向window
- call、apply、bind可改变this指向
- class里的this指向调用该方法的对象
call, apply, bind
- 作用:改变this指向
- 第一个参数都是传 this
- 第二个参数开始:call 接收一系列单独的变量,apply 必须传一个 arguments 数组,bind 可传独立变量也可传数组
- call、apply 都是立即执行并返回结果,bind 返回的是一个改变 this 指向的新函数,如果要生效需再次执行一次 ```javascript function test(){}; test(); //与test.call()一样
var person = { name: “sun” }
function printName(a, b) { console.log(this.name, a, b); }
printName.call(person, 1, 2); // nini 1 2 printName.apply(person, [1, 2]); // nini 1 2 apply 必须传一个 arguments 数组 var printN = printName.bind(person, [1, 2]); // bind 返回一个函数 printN(); // nini [1,2] var printN = printName.bind(person, 1, 2); printN(); // nini 1 2 ```