Javascript &引用;这";元素中的关键字用法

Javascript &引用;这";元素中的关键字用法,javascript,this,keyword,Javascript,This,Keyword,在这段代码中,“this”关键字用于function calls参数中的div元素,所以我的问题是“this”关键字用于对象或全局对象,比如窗口,那么为什么我们在这里使用“this”关键字,在这里使用它的目的是什么,请解释一下 1. 2. 3. 功能突出显示(elem){ 元素风格背景色='黄色' 警报(元素类名称) 元素样式背景颜色=“” } 在您的代码段中,this的目的如下:this是对当前对象(DOM元素)的引用,在您的示例中,this指的是被单击的div 在您的示例中,它将back

在这段代码中,“this”关键字用于function calls参数中的div元素,所以我的问题是“this”关键字用于对象或全局对象,比如窗口,那么为什么我们在这里使用“this”关键字,在这里使用它的目的是什么,请解释一下


1.
2.
3.
功能突出显示(elem){
元素风格背景色='黄色'
警报(元素类名称)
元素样式背景颜色=“”
}

在您的代码段中,
this
的目的如下:
this
是对当前对象(DOM元素)的
引用,在您的示例中,
this
指的是被单击的div

在您的示例中,它将
backgroundColor
应用于所有事件,因为在游戏中
事件冒泡
捕获
。要停止此操作,请使用
stopPropagation
方法并将
事件
传递给函数

以下是解决方案:

功能突出显示(元素、事件){
event.stopPropagation();
元素风格背景色='red';
}

1.
2.
3.

此处
引用元素,因为它是一个对象

当您在对象的范围内(在构造函数内或在原型中)时,
保存您当前正在更改的实例

元素是javascript中的对象。它们有一个onclick属性,您可以将其更改为您喜欢的任何函数。上述代码可转换为以下内容:

element.onclick = function() {
    highlight(this);
};
显然,您可以向元素添加highlight函数,如下所示:

HTMLDivElement.prototype.highlight = function() {
    // Stuff
};
然后您可以将
this.highlight()
放在onclick中,但这样做不会太干净


旁注:如果您不在对象的范围内,那么这指的是窗口对象。这是因为您在全局范围中放置的内容将在该对象中可用。这就是为什么只需调用它们或将
窗口放在它们前面,就可以访问所有内容。
onclick中的“This”关键字只是对onclick所在的DOM元素的引用。

例如,类为“d1”的第一个div中的“this”是对该div的引用-类为“d1”的div。在类为“d2”的第二个div中,“this”是对该div的引用-类为“d2”的div等等…

因此您可以获得对所单击内容的引用?可能是重复的:我建议您也阅读,如果您想了解有关该
的更多信息,请尝试插入
console.log(elem)内部
突出显示
功能。可能重复