函数的this指向遵循一个基本原则:谁调用的函数,函数的this就指向谁,否则指向全局
1.this指的是函数的调用者:
var a = {
name: "张三",
say: function () {
return this.name;
}
}
a.say()
console.log(a.say()); //张三
//这里调用say(),里面的this指的就是对象a,函数调用者,而对象a的属性name的值为a,所以这里返回的就是"张三"
2.this指的是window:
var name="李四"
var f = a.say
f();
console.log(f());//李四
//这里的f()的调用的默认指的是window,而声明的变量name="李四",是挂在window上的,所以这里的this.name返回的值就是"李四"
3.this指的是绑定事件的元素:
<button onclick="fn()">点击</button>
<script>
function fn(){
console.log(this)
}
</script>
//这里的点击button,控制台会打印出button这个元素,所以这里this指的是绑定事件的元素