+ -
当前位置:首页 → 问答吧 → 关于JS作用域链的几句话

关于JS作用域链的几句话

时间:2009-04-16

来源:互联网

· 作者:laruence(http://www.laruence.com/)
· 本文地址: http://www.laruence.com/2009/04/09/674.html
· 转载请注明出处

1.  js中的作用域是通过作用域链来实现的,  这个链, 是由一个一个的活动对象组成的, 最顶级的活动对象是window

2. 在js中, 在每一个执行点, this关键字都指向当前活动对象. (通过apply,call只是改变了当前的活动对象)

3. 每个属性,其实都会定义成当前活动对象的属性, 在顶级文件中的每个函数定义,变量定义, 都定义成window对象的属性.

4. 对于函数, 如果通过函数表达式定义的函数, 则在函数表达式执行前, 该函数不可用. 而如果是通过函数定义式定义的函数, js会把它的定义提前, 也就是说在函数定义式之前, 该函数都可用.
5. 因为活动对象链的特性, 所以js支持闭包.

另外关于js中的原型链有一句要说的.

1. 只有函数对象有可以访问的prototype属性, 一般对象不是没有prototype属性, 只是没有可以访问的prototype属性.(严格来讲, 一般对象只有只能JS引擎内部访问的”[[prototype]]”属性)

作者: laruence   发布时间: 2009-04-16