javascript中关于执行环境的杂谈


Posted in Javascript onAugust 14, 2011

——这就要从JAVASCRIPT的解释器开始说起了:每当JAVASCRIPT解释器开始执行一个函数的时候,都会创建一个执行环境,并且还会产生一个和这个函数息息相关的变量对象,在这个执行环境中定义的一切变量或者函数都会被他保存起来。但是他就像有关部门,可能和你息息相关,但是你永远找不到他的身影,你是无法调用这个对象的,但是JAVASCRIPT解析器处理数据时便会调用到它。
点题就到此为止了,让我们真刀真枪来说说执行环境吧。先从全局执行环境开始,他处于整个执行环境的最外面,并且是作为window对象的属性添加的。

举个例子:

<html> 
<head> 
<script type="text/javascript"> 
var a = 1; 
(function(){ 
alert(window.a === a); 
})(); 
</script> 
</head> 
<body> 
</body> 
</html>

上面这个栗子,最后会弹出true。也就是说,我们在最外围定义的全局变量,最终都收编到了window上面了。每当一个执行环境中的代码全部执行结束之后,里面一干变量以及函数的定义都会被押下,销毁。吃果果的兔死狗烹啊。

但不得不说的是,Javascript的实现允许有多个全局执行对象。纳尼?!是的,用一个说烂了的栗子吧:IFRAME,IFRAME里面拥有者不同于浏览窗口的全局作用环境。当然如果这里牵涉了跨域获取属性,那么就要说到安全性了。恩,点到为止。就说那么多吧

Javascript 相关文章推荐
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
Mar 07 Javascript
javascript实现TreeView 无刷新展开的实例代码
Jul 13 Javascript
JS不间断向上滚动效果代码
Dec 25 Javascript
js调用iframe实现打印页面内容的方法
Mar 04 Javascript
原生JS实现LOADING效果
Mar 16 Javascript
jquery中checkbox使用方法简单实例演示
Nov 24 Javascript
基于jQuery实现数字滚动效果
Jan 16 Javascript
jquery插件开发之选项卡制作详解
Aug 30 jQuery
详解Vue双向数据绑定原理解析
Sep 11 Javascript
浅谈Node 异步IO和事件循环
May 05 Javascript
el-select 下拉框多选实现全选的实现
Aug 02 Javascript
解决VueCil代理本地proxytable无效报错404的问题
Nov 07 Javascript
js中字符替换函数String.replace()使用技巧
Aug 14 #Javascript
js 通用javascript函数库整理
Aug 14 #Javascript
javascript中的数字与字符串相加实例分析
Aug 14 #Javascript
SyntaxHighlighter语法高亮插件使用说明
Aug 14 #Javascript
javascript高级学习笔记整理
Aug 14 #Javascript
jquery获得下拉框值的代码
Aug 13 #Javascript
Jquery中对数组的操作代码
Aug 12 #Javascript
You might like
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
2009/03/03 PHP
php中getservbyport与getservbyname函数用法实例
2014/11/18 PHP
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
Jquery图片滚动与幻灯片的实例代码
2013/04/08 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
2013/04/12 Javascript
Javascript拓展String方法小结
2013/07/08 Javascript
jQuery截取指定长度字符串的实现原理及代码
2014/07/01 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
图解js图片轮播效果
2015/12/20 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
JS实现队列与堆栈的方法
2016/04/21 Javascript
jquery 判断selection range 是否在容器中的简单实例
2016/08/02 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
JS多个表单数据提交下的serialize()应用实例分析
2019/08/27 Javascript
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
用实例说明python的*args和**kwargs用法
2013/11/01 Python
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
Python中一些深不见底的“坑”
2019/06/12 Python
Python爬虫如何应对Cloudflare邮箱加密
2020/06/24 Python
Python3爬虫里关于Splash负载均衡配置详解
2020/07/10 Python
Python+unittest+requests+excel实现接口自动化测试框架
2020/12/23 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
详解HTML5 window.postMessage与跨域
2017/05/11 HTML / CSS
设计师珠宝:Ylang 23
2018/05/11 全球购物
教师节商场活动方案
2014/02/13 职场文书
《找不到快乐的波斯猫》教学反思
2014/02/24 职场文书
机电一体化应届生求职信
2014/08/09 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
党小组评议意见
2015/06/02 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书
MySQL 四种连接和多表查询详解
2021/07/16 MySQL