理解JavaScript作用域链
作者:dh20156 来源:jslab 发布时间:2010-01-23 11:31:00
标签:JavaScript,作用域链,标识符
作用域链(Scope Chain)
JavaScript中的一种重要机制,JS中所有的标识符(Identifier)都是通过Scope Chain来查找值的。
具名函数表达式与匿名函数表达式和函数申明的区别
winter:
正常的函数定义时是直接把[[scope]]设为定义时的scope chain
但是具名函数表达式是先给scope chain加入一个new Object
之后再将[[scope]]设为新的scope chain
设完后再将[[scope]]还原到正常函数定义时的[[scope]]
等于是在正常函数定义时的[[scope]]添加了一个new Object到最前面
在不同浏览器中对具名函数表达式的处理方式都太一样,都没太按ECMAScript中的规定去实现
ECMAScript中关于具名函数表达式实现的规定大致如下:
1、创建一个new Object
2、将这个new Object插入到scope chain
3、创建一个new Function,将scope chain设为[[scope]]
4、为new Object添加一个属性,function name:function body(readOnly、don't Delete)
5、移除new Object
6、返回Function
0
投稿
猜你喜欢
- 一、视图的基本概念视图是用于查询的另外一种方式。 与实际的表不同,它是一个虚表;因此数据库中只存在视图的定义,而不存在视图中相对应的数据,数
- 外键查询一个表的主键是哪些表的外键SELECTTABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME,REFERENC
- 开始制作符合标准的站点,第一件事情就是声明符合自己需要的DOCTYPE。查看本站首页原代码,可以看到第一行就是:<!DOCTYPE h
- python 的语法定义和C++、matlab、java 还是很有区别的。1. 括号与函数调用def devided_3(x):  
- 级联查询在ORACLE 数据库中有一种方法可以实现级联查询select * //要查询的字段from table
- 前言在Django中有大量的通用类视图,例如ListView,DetailView,CreateView,UpdateView等等,将所有重
- 1. 无索引、索引失效导致慢查询如果在一张几千万数据的表中以一个没有索引的列作为查询条件,大部分情况下查询会非常耗时,这种查询毫无疑问是一个
- 1. 安装 Git在 Windows 系统中安装Git非常简单,只需要下载Git的安装包,然后安装引导点击安装即可:Git下载地址:http
- Oracle数据库出现死锁的时候可以按照以下处理步骤加以解决:第一步:尝试在sqlplus中通过sql命令进行删除,如果能够删除成功,则万事
- 这次我主要讲解如何用Python基于Flask的登录和注册,验证方式采用Basic Auth 主要用以下库import os#Flask的基
- 简介MVCC(Multi-Version Concurrency Control)多版本并发控制,是用来在数据库中控制并发的方法,实现对数据
- 概念节流 (throttle) 让一个函数不要执行的太频繁,减少执行过快的调用,叫节流去抖 (debounce) 去抖就是对于一定时间段的连
- 导语描述 MySQL 压缩的使用场景和解决方案,包括压缩传输协议、压缩列解决方案和压缩表解决方案。提到 MySQL 压缩相关的内容,我们能想
- 测试sql: 代码如下:SET STATISTICS IO ON SET STATISTICS TIME ON SELECT COUNT(1
- 引言今天给大家推荐的是web应用安全防护方面的一个包:csrf。该包为Go web应用中常见的跨站请求伪造(CSRF)攻击提供预防功能。cs
- 1.apt update && apt install -y curl wget sudo1.设置hostPVE官方要求,/
- 1.v-for直接上代码。示例一:<!DOCTYPE html><html><head> <met
- 先简单说一下MP3的ID3 标记,因为主要是操作这个玩意MP3最开始的时候没有我们今天看到的那样,有歌手、年代,专集等等信息只有一些简单的参
- 前言最近在整理我磁盘上的照片,发现不少猫照,突然觉得若能把这些猫照都挑出来,观察它们的成长轨迹也是一件不错的事情。一张一张的找实在是太费劲了
- jsp登陆验证,网页登陆验证带验证码校验,登录功能之添加验证码part_1:专门用于生成一个验证码图片的类:VerificationCode