this的值范围大致上可以分为:
- 如果是函数调用,那么this为window,严格模式下为undefined
- 如果是作为一个对象的方法,那么this指向该对象。
- 如果是new F()创建新实例,那么this指向这个实例。
var o = {}
var f = function(){
if(this === window)
console.log('window');
else if(this === o)
console.log('object');
}
o.f = f;
o.f() // object
f(); // window