JavaScript中的this关键字使用方法总结

当我们编写 JavaScript 代码时,经常需要访问当前函数上下文中的数据。为了做到这一点,JavaScript 提供了一个关键字 thisthis 关键字表示当前函数所在的对象,它包含了当前函数执行时所依存的上下文信息。在 JavaScript 中,this 关键字的使用非常重要,学会正确地使用 this 关键字对于编写高质量的代码非常重要。

下面是 "JavaScript中的this关键字使用方法总结 "的完整攻略:

1. this 是什么

this 关键字代表当前函数执行时所依存的“上下文对象”。它指向与函数相关的对象,在本质上就是一个变量(一个专有的关键字)。在不同的情况下,this 关键字会有不同的值。在 JavaScript 中,this 关键字在声明时并不赋值,而是在函数被调用时根据执行环境确定的。

2. this 的指向

this 的指向主要取决于函数的执行方式和函数的定义位置。通常情况下,它有四种指向方式,分别是:

  • 全局对象(指 window 或者 global
  • 普通函数调用中 this 指向全局对象
  • 对象的方法调用中 this 指向其对象
  • 构造函数调用中,this 指向新创建的对象,即 new 关键字

下面分别进行例子演示。

例1

当函数独立调用的时候,this 关键字指向全局对象(在浏览器中就是 window 对象)。

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

// function scope
function myFunction() {
  console.log(this === window); // true
}

myFunction();

例2

当函数作为对象的方法调用时,this 关键字指向这个对象。

const person = {
  firstName: "John",
  lastName: "Doe",
  fullName: function () {
    console.log(this.firstName + " " + this.lastName);
    // this here points to the person object
    console.log(this === person);
  },
};

person.fullName(); // John Doe true

3. 如何显式地传递 this

对于需要访问和修改某个特定对象的函数来说,属性访问器中的 this 上下文可能是有用的。通过使用 call(), apply()bind() 方法,我们可以手动地设置 this 的值,以获得更好的控制和更大的灵活性。

例3

使用 call() 方法来设置 this :

const person1 = {
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
};

const person2 = {
  firstName:"John",
  lastName: "Doe",
};

// call the fullName method in the person1 object, but with person2 as the 'this'
console.log(person1.fullName.call(person2)); // John Doe

例4

使用 bind() 方法来设置 this :

const person1 = {
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
};

const person2 = {
  firstName:"John",
  lastName: "Doe",
};

const person2FullName = person1.fullName.bind(person2);
console.log(person2FullName()); // John Doe

4. 总结

this 是 JavaScript 中非常重要的一个关键字,它在函数调用时可以指向不同的对象,掌握 this 并且使用它可以让你编写高质量的 JavaScript 代码。注意函数的调用方式和定义位置非常重要,以及通过 call(), apply()bind() 这三种方法可以手动设置 this 的值。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript中的this关键字使用方法总结 - Python技术站

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

相关文章

  • JavaScript弹出对话框的三种方式

    当我们想向用户展示一些提示信息时,经常会使用JavaScript弹出对话框。JavaScript弹出对话框有三种方式,分别为alert()、confirm()和prompt()。 alert() 使用alert()方法弹出对话框可以显示警告信息,警告信息通常只需要用户确认即可。下面是alert()的语法: alert("警告信息"); 下…

    JavaScript 2023年5月27日
    00
  • javascript asp教程第十三课--include文件

    下面我来详细讲解“javascript asp教程第十三课--include文件”的完整攻略。 什么是Include文件 在ASP中,可以使用指令引用其它ASP文件或文本文件,这个被引用的文件称为Include文件。当ASP页面执行带有指令的代码时,服务器会自动将Include文件的内容插入到指令所在的位置。 如何使用Include文件 要使用Include…

    JavaScript 2023年5月27日
    00
  • 微信小程序保持session会话的方法

    下面我将为你详细介绍微信小程序保持 session 会话的方法。 什么是 session session 是指客户端和服务器之间的交互状态,可以理解为身份验证或登录状态的一种维持方式。常见的维持 session 的方法有 cookie 和 token。 微信小程序 session 微信小程序中,可以通过 wx.request 方法向服务器发送请求并维持 se…

    JavaScript 2023年6月11日
    00
  • 关于导入excel时js转换时间的正确方式

    针对“关于导入Excel时JS转换时间的正确方式”的问题,我准备提供以下攻略: 标准日期格式 在Excel中,日期一般使用“yyyy-mm-dd”或“yyyy/mm/dd”的格式表示,如果以文本形式存储的话,在JS中转换日期时会出现错误。因此,在将Excel表格中的日期数据导入时,需要对日期进行预处理,将其按照标准的日期格式进行存储。这里推荐使用xlsx或e…

    JavaScript 2023年5月27日
    00
  • jscript与vbscript 操作XML元素属性的代码

    为了操作 XML 元素属性,我们需要使用 XML DOM 对象。在 JavaScript 中,我们可以使用 jscript 或者 vbscript 来访问和操作 XML DOM。 XML DOM 对象是一个树结构,由节点组成。每个节点都有一个节点类型,例如元素节点、属性节点、文本节点等。我们可以通过节点的属性和方法来访问和操作节点的内容。 下面是使用 jsc…

    JavaScript 2023年6月10日
    00
  • JS实现数组/对象数组删除其中某一项

    如果要在JavaScript中删除数组或对象数组中的某一项,可以按照以下步骤进行。 删除数组中的某一项 1.找到要删除的项的索引 要删除数组中的某一项,首先需要找到该项的索引。可以使用indexOf()方法来查找该项在数组中的索引。例如,以下代码查找数字数组中的项 “3” 的索引: const arr = [1, 2, 3, 4]; const index …

    JavaScript 2023年5月27日
    00
  • js 日期加红代码 适用于各种cms 原创

    进入正题。 JS 日期加红代码 适用于各种CMS 原创攻略 在网页开发中,有时需要将某些日期信息突出显示,以便读者更加方便地理解。这时候可以用 js 代码来实现日期加红这个效果。 实现方法 具体的实现方法是通过 JavaScript 获取网页上的日期信息,然后判断日期是否以当前日期为基准进行标红处理。 下面是关键的 JavaScript 代码: <sc…

    JavaScript 2023年6月11日
    00
  • js字符串分割处理的几种方法(6种)

    根据您提供的话题需要,下面是对 js 字符串分割处理的几种方法进行详细的讲解和实例说明。 一、使用 split() 方法 split() 方法是 JavaScript 中常用的字符串分割方法之一。它可将一个字符串拆分成多个子字符串,然后将这些子字符串存放到一个数组中,最后返回该数组。具体使用方式如下: const str = ‘hello world’; c…

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