理解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
投稿
猜你喜欢
- Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户
- 一条语句搞定数据库分页select top 10 b.* from (select&nbs
- 最近在做学院的选课系统时,在分页上被卡壳了一下,因为需要用到排序,所以不能像以前一样用一个自动递增的字段作为主键,然后仅仅是对这个主键来做统
- 你是否发现,在浩如烟海的应用程序堆里,具有漂亮图标和清爽名字的 App 更容易被用户喜爱。作为开发者,面对这自己的作品,能否自问一句:“从图
- 在MySQL中,一个字符串中,如果某个序列具有特殊的含义,则这个序列以反斜线符号(‘\’)开头,称为转义字符。常见的转义字符:\0 ASCI
- * address - 地址 * blockquote - 块引用 * center - 举中对齐块 * di
- 现在我将清除页面缓存的一些方法总结如下:1、在Asp页面首部加入<% Response.Buffer = True
- 这句话后面的1200是什么单位来的啊?delete from online where datediff(""s&quo
- 在HTML中,常见的URL有多种表示方式:相对URL: example.php demo
- MS SQL Server 2000通过企业管理器设置数据库的定期自动备份计划。1、打开企业管理器,双击打开你的服务器2、然后点上面菜单中的
- 摘 要: 恢复丢失的数据库文件在很大程度上取决于所采用的备份策略。本文从恢复的灵活性出发,对Oracle8数据库的备份及恢复策略进行了探讨,
- 一、 网页设计中的对比原则一件网页设计作品由许多元素构成,它们的重要性各不相同,其中一些元素的重要性要高于其它元素。一些相互关联,而另一些则
- INSERT、DELETE、UPDATE 三种SQL语句是数据库技术的三大基本语句. 在通常的web开发中对它的处理可以说是无处不在. 如果
- 一直很想做这个效果,原理是监听鼠标滚轮事件;可将此效果继续发散到其他应用上,如图片缩放,页面缩放等。演示:<!DOCTYPE html
- 本文进通过实例,讲述通过 prototype 自定义方法的过程,旨在抛砖引玉,如果不对的地方,欢迎指正!prototype 是在 IE 4
- 上篇文章讲了js中的传值和传址 和 函数的作用域.这章我们来探讨js中的变量,表达式,和运算符 还有一些 js 语句。升级中……1, 表达式
- 最近因工作需要,要在静态页面上实现分页,想了下,决定用AJAX来实现,所以就捣鼓了下面这么个东西,截图如下:更多关于分页的文章演示地址:ht
- dssaa 问:求一个如奥运倒计时牌那样显示的倒计时程序突然想到这样的一个小程序,不知道能不能做,比如我要在我的主页上挂一个页面,上面只显示
- 在标志设计中文字与图形元素总是紧密配合,只有恰当的字体与图形搭配时才能发挥最大的视觉效果。这也意味着你不能抛开图案,只是一厢情愿地选择你自己
- jquery基本入门 第一天:选择器相关 1.html()与.text() .html()取得第一个匹配元素的html内容。会带有标签,.t