关于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]]”属性)
· 本文地址: 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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28