Discuz教程网

javascript中关于执行环境的杂谈

[复制链接]
authicon dly 发表于 2011-9-10 21:17:29 | 显示全部楼层 |阅读模式
这就要从JAVASCRIPT的解释器开始说起了:每当JAVASCRIPT解释器开始执行一个函数的时候,都会创建一个执行环境,并且还会产生一个和这个函数息息相关的变量对象,在这个执行环境中定义的一切变量或者函数都会被他保存起来。但是他就像有关部门,可能和你息息相关,但是你永远找不到他的身影,你是无法调用这个对象的,但是JAVASCRIPT解析器处理数据时便会调用到它。
点题就到此为止了,让我们真刀真枪来说说执行环境吧。先从全局执行环境开始,他处于整个执行环境的最外面,并且是作为window对象的属性添加的。
  举个例子:
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. var a = 1;
  5. (function(){
  6. alert(window.a === a);
  7. })();
  8. </script>
  9. </head>
  10. <body>
  11. </body>
  12. </html>
复制代码

上面这个栗子,最后会弹出true。也就是说,我们在最外围定义的全局变量,最终都收编到了window上面了。每当一个执行环境中的代码全部执行结束之后,里面一干变量以及函数的定义都会被押下,销毁。吃果果的兔死狗烹啊。
  但不得不说的是,Javascript的实现允许有多个全局执行对象。纳尼?!是的,用一个说烂了的栗子吧:IFRAME,IFRAME里面拥有者不同于浏览窗口的全局作用环境。当然如果这里牵涉了跨域获取属性,那么就要说到安全性了。恩,点到为止。就说那么多吧



上一篇:纯JS实现的批量图片预览加载功能
下一篇:js中字符替换函数String.replace()使用技巧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 18:18

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表