// this指向 // 1.指向全局变量window var a = 1; function func() { var a = 2; console.log(this.a); } func(); //2 // 2.指向调用它的对象(funx()中的this只对直属上司(直接调用者obj)负责,不管有多少个。) var b = 3; function funx() { console.log(this.b); } var obj = { b: 4, funx } obj.funx(); //4 var aa = 15 function test() { console.log(this.aa) } var obj = { aa: 2, test } var obj0 = { aa: 3, obj } obj0.obj.test() // 3.可以将其传给一个变量,并且一样调用它 var d = 1 function test() { console.log(this.d) } var obj = { d: 2, test } var testCopy = obj.test testCopy(); // 4.call(),命令指向谁 var e = 7; function test1() { console.log(this.e) } var obj = { e: 8, test1 } var testCopy = obj.test1 testCopy.call(obj); // 5.指向构造函数实例化对象 var e = 9; function Fu(e) { this.e = e } var rr = new Fu(10); console.log(rr.e); // 6.箭头函数中的this在函数定义的时候就已经确定,它this指向的是它的外层作用域this的指向。 var u = 11; var test = () => { console.log(this.u); } var obj = { u: 18, test } obj.test();