JS中的THIS和WINDOW.EVENT.SRCELEMENT详解

JS中的this关键字

什么是this?

在JavaScript中,this是一个特殊的关键字,它在函数内部起着重要的作用,表明当前代码执行的上下文。当代码执行时,this的值会根据代码的上下文而动态的改变。

this指向的值

this关键字指向的是当前代码的“拥有者”或“执行者”,它的值会因为当前代码所在的位置而变化。下面是几个示例:

this指向window对象

当在全局作用域内使用this关键字时,它会指向window对象。

console.log(this === window); // true

this指向函数所属的对象

当一个函数是某个对象的方法时,this关键字会指向这个对象

let obj = {
    name: 'tom',
    sayName: function() {
        console.log(this.name);
    }
};
obj.sayName(); // 输出 tom

this指向函数本身

当使用函数的bind、apply或call方法时,this关键字会指向函数本身

function add(a, b) {
    console.log(this === add); // true
    return a + b;
}
let result = add.call(add, 1, 2); // 输出3

this指向构造函数的实例

使用new关键字调用构造函数时,this会指向构造函数的实例

function Person(name) {
    this.name = name;
    this.sayName = function() {
        console.log(this.name);
    }
}
let person = new Person('tom');
person.sayName(); // 输出tom

window.event.srcelement详解

what is window.event.srcelement?

在JavaScript中,window是全局对象,在浏览器中,window对象代表着浏览器的一个窗口或一个框架。而当我们在窗口中点击一个链接或鼠标单击一些按钮时,一个事件会被触发并被传递到window对象。

在事件处理函数中,可以使用window.event来获得当前事件对象。事件对象提供了一些用于操作事件的属性和方法,在此我们介绍其中的一个常用属性window.event.srcelement。

如何获取window.event.srcelement的值

通过window.event对象我们可以获得当前事件发生的具体位置,可以是一个HTML元素,也可以是页面中的某个区域。window.event.srcelement指的就是当前事件所在的HTML元素。

下面是一个示例,一个html页面中有一个button按钮,当按钮被单击时,会触发click事件,我们可以通过加入事件监听器的方式来获取事件对象,并使用window.event.srcelement来获取HTML元素。

<html>
<head>
    <title>测试window.event.srcelement属性</title>
    <meta charset="utf-8">
    <script type="text/javascript">
        function showMessage() {
            let el = window.event.srcElement;
            alert("当前点击的元素标签名为:" + el.tagName);
        }
        let btn = document.getElementById("myBtn");
        btn.onclick = showMessage;
    </script>
</head>
<body>
    <button id="myBtn">点击我</button>
</body>
</html>

当我们运行上面的代码,并单击button按钮时,弹出一个对话框,提示当前点击的元素标签名为 button。

总结

在JavaScript中,this和window.event.srcelement是两个常用的关键字/属性。this用于获取当前代码的执行者,window.event.srcelement用于获取当前事件所在的HTML元素。通过熟悉和灵活应用这两个关键字/属性,可以方便地编写出高效、优美的JavaScript代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS中的THIS和WINDOW.EVENT.SRCELEMENT详解 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JSON.stringify 语法实例讲解

    下面是详细讲解“JSON.stringify 语法实例讲解”的完整攻略: 1.什么是JSON.stringify? JSON.stringify() 是一个JavaScript内置函数,可以将JavaScript的对象或数组转化成一个JSON字符串。 JSON.stringify()的语法如下: JSON.stringify(value[, replacer…

    JavaScript 2023年5月27日
    00
  • javascript中使用正则表达式进行字符串验证示例

    首先,让我们来介绍JavaScript正则表达式。正则表达式是一种用于匹配文本模式的工具,JavaScript中的正则表达式使用RegExp对象来创建,并可以通过正则表达式字面量或RegExp构造函数来定义。 在JavaScript中使用正则表达式进行字符串验证有很多应用,例如对输入的内容进行格式检查、密码校验、邮箱格式验证等。 接下来我们将介绍如何通过正则…

    JavaScript 2023年5月28日
    00
  • javascript中replace使用方法总结

    JavaScript中replace使用方法总结 replace()方法是JavaScript中字符串对象的一个常用方法,其作用是在字符串中搜索指定的子字符串或者正则表达式,并将其替换为新的子字符串。在本篇文章中,我们将对replace()方法进行详细的讲解和总结。 基本使用 replace()方法的基本语法如下: string.replace(search…

    JavaScript 2023年5月28日
    00
  • JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)

    JavaScript字符串对象的concat方法可用于连接两个或多个字符串,其语法为: str.concat(string2, string3, …, stringX) 其中,str 是原始字符串,string2、string3 等是要连接的字符串。 示例一:连接两个字符串 const str1 = ‘Hello’; const str2 = ‘worl…

    JavaScript 2023年5月28日
    00
  • 用Javascript实现UTF8编码转换成gb2312编码

    要想用Javascript实现UTF8编码转换成gb2312编码,可以按以下步骤进行: 1. 将UTF8字符串解析为十六进制数组 使用 Javascript 中的 String 类型的 charCodeAt 方法,可以得到UTF8字符串的每个字符的 Unicode 码值。然后将 Unicode 码值转换为十六进制表达形式,下面是示例代码: // UTF8字符…

    JavaScript 2023年5月20日
    00
  • JavaScript函数的定义和基本使用方法

    当涉及到编写JavaScript代码时,函数是非常重要的一个概念。在JavaScript中,函数可以让我们将一段代码片段封装成一个单独的模块,以便在代码的其余部分中使用。在此过程中,函数的定义和基本使用方法至关重要。 函数的定义 在JavaScript中,可以使用以下语法来定义一个函数: function functionName(parameters) {…

    JavaScript 2023年5月18日
    00
  • javascript面向对象三大特征之继承实例详解

    JavaScript面向对象三大特征之继承实例详解 在JavaScript中,继承是面向对象编程的一个重要概念。继承可以方便地重用已有代码,并且可以减少代码重复。本文将解释JavaScript中继承的三种方式,并提供详细的示例说明。 继承的三种方式 在JavaScript中,继承有三种方式: 原型继承 (prototype inheritance) 构造函数…

    JavaScript 2023年5月27日
    00
  • JavaScript 函数语法详解

    JavaScript 函数语法详解 在JavaScript中,函数也被称为一等公民,因为它们可以像任何其他值(数字,字符串等)一样进行操作。函数可以接受参数和返回值,并且可以在任何位置声明或调用。下面是JavaScript函数的语法: function functionName(parameters) { // 函数体 return returnValue;…

    JavaScript 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部