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

yizhihongxing

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日

相关文章

  • Bootstrap如何创建表单

    创建表单是Bootstrap中常见的操作之一,下面是创建Bootstrap表单的完整攻略: 导入Bootstrap的CSS和JS文件。 在HTML文件头部添加Bootstrap相关文件的链接,可以从官方网站上下载Bootstrap文件或使用CDN链接。示例: <!– bootstrap CSS –> <link rel="st…

    JavaScript 2023年5月19日
    00
  • javascript实现类似超链接的效果

    下面是Javascript实现类似超链接的效果的攻略。 步骤 步骤一:设置HTML结构 首先需要在HTML文件中创建一个标签作为超链接的容器。这个容器可以是div、span、a等标签。 <div id="link">这是一个超链接</div> 步骤二:使用Javascript绑定点击事件 然后使用Javascrip…

    JavaScript 2023年6月11日
    00
  • JS实现密码框效果

    JS实现密码框效果的攻略如下: 1. HTML结构 密码框是一个input标签,需要添加type为password的属性,如下: <input type="password" id="password-input"> 2. JS处理 2.1 获取输入框 首先需要获取到输入框的DOM元素,这里我们使用docu…

    JavaScript 2023年6月10日
    00
  • ES6知识点整理之数组解构和字符串解构的应用示例

    针对ES6知识点整理之数组解构和字符串解构的应用示例,我的建议是按照以下步骤进行: 1. 了解ES6中的解构赋值 解构赋值是ES6新增的语法特性,它允许我们从数组或者对象中提取值,然后对变量进行赋值。它的一般语法格式如下: let [a, b, …rest] = [1, 2, 3, 4, 5]; console.log(a); // 1 console.…

    JavaScript 2023年5月28日
    00
  • JavaScript中的全局对象介绍

    下面我来详细讲解JavaScript中的全局对象。 1. 全局对象概述 在JavaScript中,存在一个特定的对象,称为全局对象(global object)。全局对象在整个JavaScript的环境中都是存在的,可以在任何地方访问。 全局对象扮演着非常重要的角色。它不仅定义了一些JavaScript最基本的属性和方法,还为开发者提供了很多有用的功能,例如…

    JavaScript 2023年5月27日
    00
  • Javascript Array slice 方法

    以下是关于JavaScript Array slice方法的完整攻略。 JavaScript Array slice方法 JavaScript Array slice方法用于从数组中提取指定的元素,并将其作为一个新数组返回。该方法不改变原始数组,而是返回一个新的数组。 下面是一个使用slice方法的示例: var arr = [1, 2,3, 4, 5]; …

    JavaScript 2023年5月11日
    00
  • JavaScript工具库MyTools详解

    JavaScript工具库MyTools详解 什么是MyTools MyTools是一个JavaScript工具库,提供了常见的JavaScript操作方法,使得开发者在开发过程中能够快速、便捷地实现一些功能,提高开发效率。 如何使用MyTools 使用MyTools需要在项目中引入MyTools的js文件。 以下是一个使用的例子: <script t…

    JavaScript 2023年6月10日
    00
  • Javascript中的包装类型介绍

    当我们在Javascript中使用基本数据类型(如数字、布尔值、字符串)时,这些数据类型会隐式地转换为对应的包装类型(Number、Boolean、String)。这些包装类型使用对象的方式来包装基本类型,使得它们能够像对象一样调用方法和属性。以下是Javascript中的三个包装类型介绍: Number Number对象是数字的包装类型。它们支持许多有用的…

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