this 永远指向调用他的对象
1 2 3 4 5 6
| function a(){ var user = "julia98"; console.log(this.user); console.log(this); } a();
|
1 2 3 4 5 6 7
| var o = { user:"julia98", fn:function(){ console.log(this.user); } } o.fn();
|
1 2 3 4 5 6 7 8 9 10
| var o = { a:10, b:{ a:12, fn:function(){ console.log(this.a); } } } o.b.fn();
|
1 2 3 4 5 6 7 8 9 10
| var o = { a:10, b:{ fn:function(){ console.log(this.a); } } } o.b.fn();
|
1 2 3 4 5 6 7 8 9 10 11 12
| var o = { a:10, b:{ a:12, fn:function(){ console.log(this.a); console.log(this); } } } var j = o.b.fn; j();
|
本来调用fn的是b,结果上述操作是直接执行了fn,所以指向window
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏