this默认之指向window
1、全局环境下指向window
console.log(this); //window
2、函数独立调用也指向window
function fn() { console.log(this); //window } fn();
3、被嵌套的函数独立调用,函数内部的this也指向window
var obj = { a: 1, foo: function () { function test() { console.log(this); //window } test() } } obj.foo()
4、自执行函数的this指向window
var a = 10; function foo() { (function test() { console.log(this); //window })(); } var obj = { a: 2, foo: foo } obj.foo()
5、闭包this默认指向了window
var a = 0; var obj = { a: 2, foo: function () { var c = this.a; return function test() { console.log(this); //window return c; } } } obj.foo() console.log(fn())