原生javascript中this几种常见用法总结

yizhihongxing

当在JavaScript中使用this关键字时,它的值取决于该函数如何被调用。下面总结了几种常见的this用法。

全局上下文中的this

在全局作用域中使用this,this的值是指向全局对象,这在浏览器中通常是window对象。例如:

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

函数上下文中的this

在函数作用域中使用this,this的值取决于函数的调用方式。如果使用函数名称调用函数,则this指向全局对象,如果使用点符号(对象方法)或通过call或apply调用函数,则this指向调用该函数的对象。例如:

function example() {
  console.log(this); 
}

example(); // Window

var obj = {
  method: example
};

obj.method(); // obj

使用call和apply方法可以显式地设置this的值。例如:

function example() {
  console.log(this);
}

example.call({ name: 'John' }); // { name: 'John' }

example.apply({ age: 25 }); // { age: 25 }

构造函数中的this

在使用构造函数创建对象时,this通常是指向要创建的新对象。例如:

function Person(name) {
  this.name = name;
}

var person1 = new Person('John');
console.log(person1.name); // John

事件监听器中的this

当在事件监听器中使用this时,this指向触发该事件的元素。例如:

var button = document.querySelector('button');

button.addEventListener('click', function() {
  console.log(this); // <button>元素
});

总之,在JavaScript中使用this时需要注意如何调用函数和使用它的上下文,否则this的值可能会产生意外结果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:原生javascript中this几种常见用法总结 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • javascript常用方法总结

    作为网站作者,我可以为您提供“Javascript常用方法总结”的完整攻略。 1. 简介 Javascript是一种广泛应用于web开发的编程语言,它具有很多强大的方法,可以对页面上的元素进行操作、获取信息、修改样式等等。在本篇攻略中,我将为大家梳理一些常用的javascript方法及其使用方法,希望能对前端开发的同学有所帮助。 2. 常用方法 2.1. g…

    JavaScript 2023年5月17日
    00
  • javascript对象的多种合并方式详解

    下面是针对 “JavaScript 对象的多种合并方式” 的完整攻略: 标题 JavaScript 对象的多种合并方式详解 简介 JavaScript 中对象合并是一种非常常见的操作,它可以让开发者把已有的对象拼接在一起,生成一个新的对象。本文将会详细讲解 JavaScript 中对象合并的多种方法。 对象合并的多种方式 Object.assign() Ob…

    JavaScript 2023年5月27日
    00
  • JS实现手写 forEach算法示例

    当我们需要在JavaScript中对数组中的每个元素进行操作时,可以使用forEach方法。但是,如果我们想要深入了解forEach方法的实现过程,那么我们可以使用手写forEach算法来了解它的原理。 实现步骤 首先,我们需要明确手写forEach算法的实现步骤: (1)接收一个数组和一个回调函数作为参数; (2)依次遍历数组中的每个元素; (3)对每个元…

    JavaScript 2023年5月28日
    00
  • 总结JavaScript三种数据存储方式之间的区别

    当我们开发基于 JavaScript 的应用程序时,我们需要考虑如何在应用程序中存储数据。JavaScript 中有很多种数据存储方式,本文将介绍三种最常用的数据存储方式,包括: Cookie Web 存储(LocalStorage 和 SessionStorage) IndexedDB Cookie Cookie 是最早的 Web 储存技术之一,可以通过 …

    JavaScript 2023年6月11日
    00
  • JavaScript数组对象实现增加一个返回随机元素的方法

    实现一个返回随机元素的方法,我们可以通过 JavaScript 的数组对象原型添加一个静态方法实现。 下面是实现步骤: 1.首先,在数组对象原型上添加一个随机获取数组元素的方法。 Array.prototype.getRandomItem = function() { return this[Math.floor(Math.random() * this.l…

    JavaScript 2023年6月10日
    00
  • JavaScript实现公历转农历功能示例

    为了实现将公历转为农历的功能,我们可以使用 JavaScript 。下面是一些实现方法: 获取农历年份其中天干地支年份和生肖的方法 根据中国传统农历的节气来把年份换算成对应的天干地支年份和生肖。下面是一种计算天干地支的方法: // 获取生肖年份的方法 function zodiacYear(solarYear) { var animals = [ &quot…

    JavaScript 2023年5月27日
    00
  • JavaScript中全局变量、函数内变量以及常量表达式的效率测试

    JavaScript中全局变量、函数内变量以及常量表达式的效率测试需要通过性能测试来对不同的变量声明方式进行比较。 1. 性能测试的基本原理 在JavaScript中,可以通过performance.now()方法来测试代码的执行时间。该方法会返回一个以毫秒为单位的时间戳,可以用来记录代码的执行时间。比如,代码片段A执行时刻为t1,代码片段B执行时刻为t2,…

    JavaScript 2023年6月10日
    00
  • js 中{},[]中括号,大括号使用详解

    下面我来详细讲解一下 JS 中 {}、[] 中括号、大括号使用的详细攻略。 大括号 {} 大括号 {} 在 JS 中主要用于表示一个代码块,可以将多条语句组合在一起,在循环、条件语句、对象字面量等场景下经常使用。 下面是一个将数组中的奇偶数分离的示例: const arr = [1, 2, 3, 4, 5, 6]; const even = []; cons…

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