1.函数中: 指向窗口window
function fn() {
console.log(this);
}
fn();
2.方法中: 指向的是这个方法所属的对象
var obj = {
name: 'zs',
fn:function(){
console.log(this.name);
}
}
obj.fn();
3.构造函数中: 指向构造函数创建的对象
function Fn() {
this.name = 'zs';
this.age = 18;
console.log(this);
}
var o = new Fn();
4.事件处理函数中: 事件源,谁调用的该事件this就指向谁
// 1.获取元素
var btn = document.getElementById('btn');
// 2.给按钮注册事件
btn.onclick = function(){
var box = document.getElementById('box')
// 为什么DOM对象的对应的标签的class属性的名字叫做className,因为class在js中是关键字
// 关键字不可以作为变量或者属性的名字
box.className = 'hidden'
// 如何设置按钮对应的元素的属性呢
// btn.value = '显示';
this.value = '显示'
}