js的闭包详解(JavaScript知识总结 闭包篇)
导读:这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助...
这里给大家分享我在网上总结出来的一些知识 ,希望对大家有所帮助
3. 创建执行上下文
创建执行上下文有两个阶段:创建阶段和执行阶段
1)创建阶段
(1)this绑定
在全局执行上下文中 ,this指向全局对象(window对象) 在函数执行上下文中,this指向取决于函数如何调用 。如果它被一个引用对象调用 ,那么 this 会被设置成那个对象 ,否则 this 的值被设置为全局对象或者 undefined(2)创建词法环境组件
词法环境是一种有标识符——变量映射的数据结构 ,标识符是指变量/函数名 ,变量是对实际对象或原始数据的引用 。 词法环境的内部有两个组件:加粗样式:环境记录器:用来储存变量个函数声明的实际位置外部环境的引用:可以访问父级作用域(3)创建变量环境组件
变量环境也是一个词法环境 ,其环境记录器持有变量声明语句在执行上下文中创建的绑定关系。2)执行阶段
此阶段会完成对变量的分配 ,最后执行完代码 。
简单来说执行上下文就是指:
在执行一点JS代码之前 ,需要先解析代码 。解析的时候会先创建一个全局执行上下文环境 ,先把代码中即将执行的变量 、函数声明都拿出来 ,变量先赋值为undefined,函数先声明好可使用 。这一步执行完了 ,才开始正式的执行程序 。
在一个函数执行之前 ,也会创建一个函数执行上下文环境,跟全局执行上下文类似 ,不过函数执行上下文会多出this 、arguments和函数的参数 。
全局上下文:变量定义 ,函数声明 函数上下文:变量定义,函数声明 ,this ,arguments如果对您有所帮助 ,欢迎您点个关注 ,我会定时更新技术文档 ,大家一起讨论学习 ,一起进步 。
声明:本站所有文章 ,如无特殊说明或标注 ,均为本站原创发布 。任何个人或组织 ,在未征得本站同意时,禁止复制、盗用 、采集 、发布本站内容到任何网站 、书籍等各类媒体平台 。如若本站内容侵犯了原著者的合法权益 ,可联系我们进行处理 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!