1. 理解this关键字
this是JavaScript中的关键字,表示当前正在执行的函数或方法的上下文对象。
它的值取决于函数调用的方式。如果函数作为对象的方法被调用,this就指向这个对象。如果函数被独立调用,this就指向全局对象(window对象)。
//函数作为对象的方法被调用
var person = {
firstName: "John",
lastName : "Doe",
fullName : function() {
return this.firstName + " " + this.lastName;
}
}
person.fullName(); //返回 "John Doe"
//函数独立调用
function sayHello() {
console.log(this); //输出全局对象window
}
sayHello();
2. this在HTML中的应用
2.1 在JavaScript代码中使用this
在HTML中使用JavaScript脚本时,可以使用this关键字引用当前事件的HTML元素,如onclick事件:
<button onclick=alert(this[xss_clean])">点击</button>
当点击按钮时,弹出的提示框会显示按钮的文本。
2.2 在CSS中使用this
在CSS中,可以使用this关键字引用当前事件的HTML元素。例如,使用:hover伪类和this关键字可以实现在鼠标悬停在元素上时改变元素样式的效果:
<style>
button:hover {
background-color: red;
}
</style>
<button>悬停</button>
当鼠标悬停在按钮上时,按钮的背景颜色将变为红色。
2.3 在jQuery中使用this
在jQuery中,this关键字引用当前事件的HTML元素。例如,使用$(this)可以获得当前点击的按钮:
$('button').click(function() {
alert($(this).html());
});
当点击按钮时,弹出的提示框会显示按钮的文本。
3. 使用箭头函数
在箭头函数中,this关键字指向函数定义时的上下文环境,而不是调用时的上下文环境。这意味着箭头函数中的this与外部代码中的this是一样的。
var person = {
firstName: "John",
lastName : "Doe",
fullName : () => {
return this.firstName + " " + this.lastName;
}
}
person.fullName(); //返回 "undefined undefined"
上面的例子中,箭头函数中的this指向全局对象window,因此无法访问person对象的属性。
4. 总结
this关键字在HTML中的应用主要体现在JavaScript、CSS和jQuery中。在JavaScript中,this关键字表示当前函数或方法的上下文对象;在CSS中,this关键字可以引用当前事件的HTML元素;在jQuery中,this关键字可以获取当前点击的HTML元素。
另外,箭头函数与普通函数不同,它中的this关键字指向函数定义时的上下文环境,而不是调用时的上下文环境。因此,在使用箭头函数时需要注意。