JavaScript中this关键字实践

● 在全局中, this关键字表示全局窗口

console.log(this);

在这里插入图片描述

● 在严格模式下,this不指向函数本身,在非严格模式下,this指向全局窗口

console.log(this);

const calcAge = function (birthYear) {
  console.log(2037 - birthYear);
  console.log(this);
}

calcAge(1998);

在这里插入图片描述

● 使用箭头函数时,this的值将继承外围函数

const calcageArrow = brithYear => {
  console.log(2037 - brithYear);
  console.log(this);
};

calcageArrow(1980);

在这里插入图片描述

在箭头函数中,this的值是由其定义时所处的上下文决定的,而不是调用时的上下文。箭头函数calcageArrow被定义在全局作用域中,因此它的this值将引用全局对象(在浏览器环境中是window对象)。

● 在对象方法中调用this,this的值是该方法本身的对象

const jonas = {
  year: 1995,
  calcAge: function () {
    console.log(this);
  },
};

jonas.calcAge();

在这里插入图片描述

当然,this的值是对象,所以我们可以用this去计算年龄

const jonas = {
  year: 1995,
  calcAge: function () {
    console.log(this);
    console.log(2038 - this.year);
  },
};

jonas.calcAge();

在这里插入图片描述

● 当使用方法借用的时候,this的值仍然是调用该方法的对象

const jonas = {
  year: 1995,
  calcAge: function () {
    console.log(this);
    console.log(2038 - this.year);
  },
};

jonas.calcAge();

const mark = {
  year: 2017,
};

mark.calcAge = jonas.calcAge;
mark.calcAge();

在这里插入图片描述

在JavaScript中,当一个方法被赋值给另一个对象并作为该对象的方法调用时,方法内部的this值会发生改变。这是因为this的值是在函数被调用时动态确定的,取决于调用该函数的对象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/143298.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

空间数据结构笔记:层次包围盒树(Bounding Volume Hierarchy Based On Tree)

1 总览 层次包围盒树(BVH树)是一棵多叉树,用来存储包围盒形状。它的根节点代表一个最大的包围盒,其多个子节点则代表多个子包围盒。为了统一化层次包围盒树的形状,它只能存储同一种包围盒形状 2 AABB包围盒树&#x…

科研学习|研究方法——逻辑回归系数的显著性检验(python实现)

1. 背景 回归方程与回归系数的显著性检验 2. statsmodels 库 statsmodels库可以用来做逻辑回归、线性回归。并且会在summary中给出显著性检验的结果。最终我们想要的就是如下图的报告。 3. 计算过程 如果我们使用的sklearn构建的逻辑回归就没有办法直接输出这个报告&#xff0c…

Nexus的Linux服务器部署(菜鸟版)

Nexus的Linux服务器部署 一、下载与安装 使用Nexus搭建Maven私服,在离线环境中使用Maven,并自动从私服中下载依赖包和组件。 下载地址:https://www.sonatype.com/ 镜像仓库 腾讯云软件包镜像: https://mirrors.cloud.tencent.com/阿里软…

git简明指南

目录 安装 创建新仓库 检出仓库 工作流 安装 下载 git OSX 版 下载 git Windows 版 下载 git Linux 版 创建新仓库 创建新文件夹,打开,然后执行 git init 以创建新的 git 仓库。 检出仓库 执行如下命令以创建一个本地仓库的克隆版本&…

Ridgeline plot / 远山图 / 山脊图 怎么画?怎么优化?

工具 Origin 2022 当然,用Matlab、Python也是可以的。 颜色配置 色卡调整

(论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking

文献阅读笔记(分层卷积特征) 简介 题目 Hierarchical Convolutional Features for Visual Tracking 作者 Chao Ma, Jia-Bin Huang, Xiaokang Yang and Ming-Hsuan Yang 原文链接 arxiv.org/pdf/1707.03816.pdf 关键词 Hierarchical convolution…

Banana Pi BPI-M5 Boot Log 导出说明

准备: Preparation: 1、 一块bpi的开发板,一根ttl的串口线,以及一张烧录好镜像的sd/tf卡(烧录到eMMC也行)。 1. A BPI development board, a TTL serial port cable, and an SD/TF card with a burned image (it ca…

【React】Antd 组件基本使用

Antd 组件基本使用 第一步 安装并引入 antd 包 使用命令下载这个组件库 yarn add antd在我们需要使用的文件下引入&#xff0c;我这里是在 App.jsx 内引入 import { Button } from antd现在我们可以在 App 中使用 Button 组件 <div>App..<Button type"prima…

微信小程序漏洞之accesskey泄露

更新时间&#xff1a;2023年09月08日09:42:52 1. Accesskey泄露漏洞 这篇文章里面都是以我个人的视角来进行的&#xff0c;因为一些原因&#xff0c;中间删了一些东西&#xff0c;肯定有很多不正确的地方&#xff0c;希望大家能理解&#xff0c;也能指正其中的错误。 在以前…

腾讯云阿里云双11服务器大促,腾讯云阿里云服务器价格大比拼!

双11大促是每年一度的购物狂欢节&#xff0c;不仅限于电商平台&#xff0c;云服务商也加入了这场盛会。阿里云和腾讯云作为国内两大云服务巨头&#xff0c;今年也推出了令人瞩目的双11促销活动。本文将为您详细介绍阿里云和腾讯云的双11促销活动&#xff0c;并给出一些建议供您…

Web安全:Vulfocus 靶场搭建.(漏洞集成平台)

Web安全&#xff1a;Vulfocus 靶场搭建.&#xff08;漏洞集成平台&#xff09; Vulfocus 是一个包含了多种漏洞靶场的镜像。每个靶场都有具体的漏洞环境和攻击点。Vulfocus 的靶场包括了 Web 安全漏洞、系统安全漏洞、网络安全漏洞、密码学漏洞等多种类型。通关这个靶场我们可以…

海外ASO优化之谷歌商店的评论优化

应用商店中的评分和评论&#xff0c;显示我们的应用程序的受欢迎程度以及用户对该应用程序的看法。评分和评论是以前或者是现在的用户分享的经验和公开的反馈。 1、提高应用评分评论。 高评分的应用可以从应用商店内的搜索流量中获得更多的点击量&#xff0c;通过推荐和推荐获…

Spring全家桶源码解析--2.3 Spring bean 的依赖注入--@Autowired@Value

文章目录 前言一、Autowired&Value&#xff1a;1.1 Autowired&#xff1a;1.2 Value&#xff1a; 二、依赖注入&#xff1a;2.1 注入点获取&#xff1a;2.2 通过 populateBean 入口依赖注入2.2.1 populateBean &#xff1a;主要通过 postProcessProperties 方法进行依赖注入…

MySQL数据库入门到大牛_基础_07__单行函数

文章目录 1. 函数的理解1.1 什么是函数1.2 不同DBMS函数的差异1.3 MySQL的内置函数及分类 2. 数值函数2.1 基本函数2.2 角度与弧度互换函数2.3 三角函数2.4 指数与对数2.5 进制间的转换 3. 字符串函数4. 日期和时间函数4.1 获取日期、时间4.2 日期与时间戳的转换4.3 获取月份、…

Shell脚本 CPU,内存,磁盘占用率检测

CPU&#xff1a;运算资源占用 内存&#xff1a;RAM类介质 磁盘&#xff1a;ROM类介质 一、CPU #!/bin/bash# 设置阈值&#xff0c;当CPU占用超过该阈值时进行输出提示 threshold80while true do# 使用top命令获取CPU占用信息&#xff0c;并使用grep和awk筛选和解析输出结果…

Python机器学习基础(三)---数据预处理

一.数据预处理作用 数据预处理会将选定的数据转换为我们可以使用的形式或可以提供给ML算法的形式&#xff0c;以使其符合机器学习算法的期望。 二.数据处理的常用方法 1.规范化 数据规范化是使属性数据按比例缩放&#xff0c;这样就将原来的数值映射到一个新的特定区域中&#…

使用gitflow时如何合并hotfix

前言 在使用 git flow 流程时, 对于项目型的部署项目经常会遇到一个问题, 就是现场项目在使用历史版本时发现的一些问题需要修复, 但升级可能会有很大的风险或客户不愿意升级, 这时就要求基于历史版本进行 hotfix 修复. 基于历史发布版本的缺陷修复方式不同于最新发布版本的补…

适配器模式 ( Adapter Pattern )(6)

适配器模式 ( Adapter Pattern ) 适配器模式&#xff08;Adapter Pattern&#xff09;是作为两个不兼容的接口之间的桥梁 适配器模式涉及到一个单一的类&#xff0c;该类负责加入独立的或不兼容的接口功能 举个真实的例子&#xff0c;读卡器是作为内存卡和笔记本之间的适配器…

应用亚马逊云科技,Share Creators1个月内上线生成式AI生图模块

随着生成式AI在全球范围爆火&#xff0c;如何充分利用生成式AI自动生成内容提高创作效率已成为设计领域创新的关键突破口。对于设计行业和游戏行业的众多企业和团队而言&#xff0c;管理数字资产的能力是其实现高效创作最大的挑战之一&#xff0c;也是在降本增效的流程中非常容…

自己搭设开源密码管理工具 bitwarden

简介 Bitwarden是一款自由且开源的密码管理服务&#xff0c;用户可在加密的保管库中存储敏感信息&#xff08;例如网站登录凭据&#xff09;。Bitwarden平台提供有多种客户端应用程序&#xff0c;包括网页用户界面、桌面应用&#xff0c;浏览器扩展、移动应用以及命令行界面。[…