当前位置: 首页 > news >正文

JS的this机制

JS的this机制

  • 背景
  • JavaScript 中的 this 是什么
    • 全局执行上下文中的 this

背景

下面这段实例代码

let bar = {myname: 'yy',printname: function() {console.log(myname)}
}
let myname = 'qq'
bar.printname()
// 执行结果:qq

在对象内部的方法中使用对象内部的属性是一个非常普遍的需求,但是 JavaScript 的作用域机制并不支持这一点。基于这个需求,JavaScript 又搞出来另外一套 this机制。你需要修改 printname 函数为:

printname: function() {console.log(this.myname)
}

这样获取到的值才是 bar 对象内部的属性 myname,结果为 yy

接下来展开介绍 this,作用域链和 this 是两套不同的系统,它们之间基本没太多联系,首先明确这点,以免在学习 this 过程中,无意识的和作用域链产生一些不必要的关联。

JavaScript 中的 this 是什么

this 时和执行上下文绑定的,也就是说每个执行上下文都有一个 this。执行上下文分为三种——全局执行上下文、函数执行上下文以及 eval 执行上下文,对应的 this 也有三种——全局执行上下文的 this、函数中的 this以及 eval 中的 this。重点介绍全局执行上下文中的 this函数执行上下文中的 this

全局执行上下文中的 this

相关文章:

  • 【面试题】写一个睡眠函数
  • leetcode-2.两数相加
  • 【数据倾斜笔记】
  • Pandas中concat的用法
  • JavaScript:正则表达式
  • 【线性代数】决定张成空间的最少向量线性无关吗?
  • uniapp+echarts开发APP版本教程
  • 5.2 显示窗口的内容(二)
  • JUnit 5和Mockito单元测试
  • css 用多个阴影做出光斑投影的效果 box-shadow
  • 学习笔记-MyBatis的工作原理。
  • 求解拍频的信号特征
  • LeetCode1491. Average Salary Excluding the Minimum and Maximum Salary
  • 【2023年12月18日-12月25日】一周AI咨询更新
  • 昇腾910平台安装驱动、固件、CANN toolkit、pytorch
  • 【译】JS基础算法脚本:字符串结尾
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • Angular 响应式表单之下拉框
  • Angular2开发踩坑系列-生产环境编译
  • Codepen 每日精选(2018-3-25)
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Laravel 菜鸟晋级之路
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • vagrant 添加本地 box 安装 laravel homestead
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 解析带emoji和链接的聊天系统消息
  • 如何解决微信端直接跳WAP端
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 入口文件开始,分析Vue源码实现
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 移动端高清、多屏适配方案
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #{}和${}的区别?
  • #pragma预处理命令
  • $.ajax()参数及用法
  • (39)STM32——FLASH闪存
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (NSDate) 时间 (time )比较
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (五)网络优化与超参数选择--九五小庞
  • (循环依赖问题)学习spring的第九天
  • (转)Android学习笔记 --- android任务栈和启动模式
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • *Django中的Ajax 纯js的书写样式1
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • @EnableWebMvc介绍和使用详细demo
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • [30期] 我的学习方法