JavaScript 有一套完全不同于其它语言的对 this 的处理机制。 在五种不同的情况下 ,this 指向的各不相同。
全局范围内
this;
函数调用
foo();
此时this也是指向全局对象方法调用
a.foo();
此时的this指向a对象调用构造函数
new foo();
如果函数和new一起使用,则这个函数是构造函数。在函数内部,this指向新创建的对象显式使用
当使用
call
或者apply
方法时,函数内的this将会被显式设置为函数调用的第一个参数
JavaScript 有一套完全不同于其它语言的对 this 的处理机制。 在五种不同的情况下 ,this 指向的各不相同。
全局范围内
this;
函数调用
foo();
此时this也是指向全局对象
方法调用
a.foo();
此时的this指向a对象
调用构造函数
new foo();
如果函数和new一起使用,则这个函数是构造函数。在函数内部,this指向新创建的对象
显式使用
当使用call
或者apply
方法时,函数内的this将会被显式设置为函数调用的第一个参数