04 Web全栈 闭包/this指针

news2024/11/16 19:27:48

专业术语

  • 变量、常量、数据类型
  • 形参、实参
  • 匿名函数、具名函数、自执行函数
  • 函数声明、函数表达式
  • 堆、栈
  • 同步、异步、进程、线程

执行上下文

当函数执行时,会创建一个执行上下文的环境,分为创建和执行两个阶段

创建阶段
创建阶段,指函数被调用但还未执行任何代码时,此时创建了一个拥有3个属性的对象

executionContext = {
	scopeChain: {}, // 创建作用域链
	variableObject: {}, // 初始化变量、函数、形参
	this: {} // 指定this
}

代码执行阶段
代码执行阶段主要的工作是1、分配变量、函数的引用、赋值;2、执行代码

函数作用域变量是在定义时栈向外找,不是调用时向外找
let 经过babel编译 直接编译成var, 但是会有很多hack技巧

闭包

高级程序设计中,闭包是指有权访问另一个函数作用域中的变量的函数,可以理解为能够读取其它函数内部变量的函数

function outer () {
	var top = 'yuanxin'
	return function inner () {
		console.log(top)
	}
}
const inner = outer()

this

场景1:函数直接调用 -> 全局或undefined

场景2:函数被别人调用 -> 执行时谁点出来就是谁
注意这个执行时, 所以回调函数是全局

场景3:new 一个实例的时候 -> new出来的实例

场景4:call,apply,bind调用的时候

场景5:箭头函数指向离这个箭头函数最近的非箭头函数上下文

例:

var obj = {
	name: 'zhangsan',
	getName: function () {
		console.log(this.name)
	}
}
// 逗号表达式,返回后一个值
(1, obj.getName)() //这里的this是window 所以console结果是undefined

箭头函数认不认call、apply?

总结一下

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android开发有必要深耕Framework吗?该如何着手?

前言 前段时间朋友在找 Android 高级开发工作,想进一步提升自己的能力,看了很多招聘信息,都要求熟练掌握 Framwork,了解底层原理等,发现是不是该深入研究底层技术…… 同时在网上也看到过相关问题,有很多…

iOS应用上架指iOS应用上架指南:综合详解

目录 引言 一、基本需求信息。 二、证书 一.证书管理 二.新建证书 三.使用appuploader服务同步证书 三、打包 三、审核 四、整体架构流程 五、代码实现 六、总结 转载自iOS开发上架的文章:iOS应用全面上架指南 引言 上架IOS应用到app store,…

An unexpected connection driver error occured

安装下载好rabbitmq,我在springboot整合mq,启动的时候报错了 An unexpected connection driver error occured 后来又报 Failed to check/redeclare auto-delete queue(s). 综合就是连接问题,端口有问题 我试过添加账户,提高权限&…

Docker 环境安装

博文目录 文章目录 CentOS 安装 Docker Engine安装 Docker升级 Docker卸载 Docker阿里云镜像加速 使用 DNF 命令安装最新 Docker Docker 官方文档 下载与安装 Linux 版本选择 Docker 官方文档 下载与安装 CentOS CentOS 安装 Docker Engine 安装 Docker 卸载旧版。卸载docke…

充分条件、必要条件

关于对充分条件、必要条件、充要条件的最简单扼要的理解: 充分条件:有A就一定有B,则A是B的充分条件; 必要条件:无A就一定无B,则A是B的必要条件; 充要条件:有A就一定有B&#xff0…

(区间dp)牛客·分离与合体

别人写dfs&#xff0c;我写bfs&#xff0c;个人觉得对于这个题bfs更好理解。 思路都大同小异啦…… 1、dp[i][j]:第i到第j获得最大的价值 2、p[i][j]:第i到第j获得最大价值时(i-k-j)&#xff0c;记录值k 3、bfs求路径&#xff0c;层次遍历嘛#include<bits/stdc.h> using…

精通 H.264,从压缩原理到前沿应用的全方位了解

H.264&#xff0c;也称为 AVC&#xff08;Advanced Video Coding&#xff09;&#xff0c;是一种广泛使用的视频编码标准。它是一种高效的压缩算法&#xff0c;可用于对音频和视频数据进行高质量的压缩和编码。以下是关于 H.264 编码的一些重要信息&#xff1a; 压缩原理&…

机器学习笔记 - 结合深度学习的基于内容的图像实例检索 通过学习DCNN表示进行检索

一、概述 上一篇,利用现成的DCNN模型进行检索。 机器学习笔记 - 结合深度学习的基于内容的图像实例检索 利用现成的DCNN模型进行检索_坐望云起的博客-CSDN博客一种方案是,为分类任务而进行大规模训练的DCNN直接充当图像检索任务的现成特征检测器,也就是说,可以提出在DCNN的…

5G驻留提升优化

故提出基于5-4两两邻区对的精细化的驻留比分析办法&#xff0c;围绕“一核心、二场景、四维度、五方案”这一方法&#xff0c;助力驻留比提升&#xff0c;“一核心”指基于5-4两两邻区对&#xff0c;选取次数TOP邻区对分析&#xff0c;“二场景”指5G小区为宏站还是室分&#x…

飞鱼星 企业级智能上网行为管理系统 权限绕过信息泄露漏洞

一&#xff1a;漏洞描述 飞鱼星 企业级智能上网行为管理系统 存在权限绕过以及信息泄露漏洞&#xff0c;可以获取管理员权限以及用户密码 二: 漏洞影响 飞鱼星 企业级智能上网行为管理系统 三: 漏洞复现 title“飞鱼星企业级智能上网行为管理系统” 访问主页使用Burp抓包 …

避免游离指针或引用以保护共享数据

在对共享数据进行保护时&#xff0c;有可能被外界的指针修改。如下例&#xff1a; #include<iostream> #include<thread> #include<mutex> #include<windows.h>using namespace std;class user_data {public:int a;char c;void change_data(void) { a…

Log On Yarn

序言 整理下各种部署在Yarn上的应用如何查看日志的问题.当然我觉得使用自定义的日志收集器来收集就更好了.这样子也解决了集群日志的问题cuiyaonan2000163.com 只用Flink做个引子,其它的服务也是这样的,没有什么差别 Flink 比如我们提交了一个任务同时知道他的ApplicationId…

transformer零基础学习

声明&#xff1a;以下文章链接仅用于个人学习与备忘。 基础知识 1&#xff1a;零基础解析教程 [推荐] https://zhuanlan.zhihu.com/p/609271490 2&#xff1a;Transformer 详解 [推荐] https://wmathor.com/index.php/archives/1438/ 3&#xff1a;如何从浅入深理解transfor…

Flutter开发笔记:Flutter 布局相关组件

Flutter开发笔记 Flutter 布局与布局组件 - 文章信息 - Author: Jack Lee (jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChineAddress of this article:https://blog.csdn.net/qq_28550263/article/details/131419782 【介绍】&am…

随笔-当曾经的小弟当了你的领导,阁下该如何应对

前几天&#xff0c;从小龙那得到一个招聘信息&#xff0c;想着被优化的C朋友&#xff0c;就转发给了他。过了会C朋友给我回了信息&#xff1a; C朋友&#xff1a;入职A&#xff08;我现在的公司&#xff09;需要穿正装吗&#xff1f; 我&#xff1a;需要啊&#xff0c;办手续…

并发编程-分布式存储系统之edits_log

复杂一点的多线程编程场景&#xff0c;总结起来也就是 通过加锁来控制好标志位的状态流转&#xff0c;通过标志位的不同的流转状态&#xff0c;来控制每个线程有不同的行为如果是需要各个线程协作处理的逻辑&#xff0c;就采用最简洁的wait/notify机制 分布式存储系统 分布式存…

【软件安装】Linux系统中安装JDK1.8运行环境(Ubuntu系统)

这篇文章&#xff0c;主要介绍Linux系统中安装JDK1.8运行环境&#xff08;Ubuntu系统&#xff09;。 目录 一、Linux安装JDK运行环境 1.1、下载JDK安装包 1.2、上传JDK到Linux服务器 1.3、解压JDK安装包 1.4、配置JDK环境变量 1.5、重新加载profile环境变量 1.6、检查是…

卷积(CNN)| 反卷积(TCNN、Transposed CNN)| 卷积过程中feature map的通道变化 | 1 × 1卷积核如何降维/升维

关于深度学习中的一些小概念&#xff0c;因为网上的资源有些散乱&#xff0c;这里总结一些自己的&#xff0c;方便后面复习&#xff0c;摘一些图&#xff0c;但是会标明引用&#xff01; 一、卷积 对于卷积&#xff0c;下面一张图就够了&#xff0c;根据 stride 步长在 featur…

优维低代码实践:数据加工/转化详解

优维低代码技术专栏&#xff0c;是一个全新的、技术为主的专栏&#xff0c;由优维技术委员会成员执笔&#xff0c;基于优维7年低代码技术研发及运维成果&#xff0c;主要介绍低代码相关的技术原理及架构逻辑&#xff0c;目的是给广大运维人提供一个技术交流与学习的平台。 优维…

5大最热门云原生API Gateway

文章目录 前言&#xff1a;为什么需要API Gateway&#xff1f;一、APISIX二、Kong三、TyK四、Easegress五、Gloo六、API Gateway应该如何选择&#xff1f; 公众号&#xff1a; MCNU云原生&#xff0c;文章首发地&#xff0c;欢迎微信搜索关注&#xff0c;更多干货&#xff0c;…