网络编程
位置:首页>> 网络编程>> JavaScript>> 理解JavaScript作用域链

理解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
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com