this指向调用这个方法的实例对象
在浏览器中,直接定义一个方法,就是定义在window这个对象中,调用的其实是window.方法名(),但是由于在window环境下,所以window可以不用写;如果直接调用这个方法,this指向window
<script>
function test(){
console.log(this)
}
test()
//和window.test()一样
</script>
注:普通方法的this对象是window,new出来的方法this对象是这个对象
<script>
function test(name){
console.log(this)
}
var f = test('哈哈') //window
function Dog(name){
this.name = name
console.log(this)
}
var dog = new Dog("牧羊") //dog
</script>
<script>
let dog = {
name:'牧羊',
say:function(){
console.log('my name is' + this.name)
}
}
dog.say() //this这个时候就是调用它的对象
</script>