1.出现全局作用域
=>全局对象
2.出现在函数中
1>普通函数
=>全局对象
2>对象中的方法
=>方法前面一个点前面的对象(谁点出来这个方法就是谁)
3.new
new foo()
=>foo{} 一个新的对象
4.事件函数中
btn.onclick=fn
=>事件触发的对象(注册事件的对象)
5.call、apply、bind
//想判断this的作用域就找离他最近的function关键字,箭头函数除外
var func1=function(){
console.log(this )
var func2=function(){
console.log(this )
}
}
//1.普通调用
function foo (){
console.log(this)
}
foo() //=>window全局对象
//2.对象里面的调用
const a={
foo:foo
}
a.foo() //=>object对象
//3.new
function foo(){
console.log(this)
}
new foo()//=>foo的新对象