您现在的位置:首页 --> JavaScript --> javascript with延伸的作用域是只读的吗?
javascript with延伸的作用域是只读的吗?
浏览:2257次 出处信息
当执行流进入下列任何一个语句时,作用域链将得到延长:
* 1) try-catch语句的catch块
* 2) with语句此两个语句会在作用域链的前端添加一个变量对象。对with来说,其变量对象中包含着指定对象的所有属性和方法所作的变量申明;对catch来说,其变量对象中包含的是被抛出的错误对象的申明。这些标量对象都是只读的,因此在with和catch语句中申明的变量都会被添加到所在执行环境的变量对象中。
这是《JavaScript 高级程序设计第二版》中说明的一句话。可是,with延伸的作用域,标量对象真的是只读的吗?还是我理解的这个标量的意义不对?
不瞎说了,把自己的测试代码发一下就可:
//会跳转
(function(){
with(location){
href='http://www.360.cn';
}
})();
// b
(function(){
var obj = {a:'a'};
with(obj){
a = 'b';
}
alert(obj.a);
})();
(function(){
with(location){
href='http://www.360.cn';
}
})();
// b
(function(){
var obj = {a:'a'};
with(obj){
a = 'b';
}
alert(obj.a);
})();
建议继续学习:
- javascript的词法作用域 (阅读:4262)
- 有趣的变量作用域-PHP中global和Javascript中的var关键字 (阅读:3685)
- 闭包与作用域 (阅读:3559)
- 认识javascript中的作用域和上下文 (阅读:3194)
- javascript作用域和作用域链 (阅读:3184)
- JavaScript 函数、作用域和继承 (阅读:3068)
- Javascript作用域原理 (阅读:2926)
- 样式的作用域──页面重构中的模块化设计(一) (阅读:2694)
- 从另外两道题说起 (阅读:2576)
- 了解JS中的全局对象window.self和全局作用域self (阅读:2457)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:Javascript中的函数声明和函数表达式
后一篇:如何写出高质量的Javascript代码 >>
文章信息
- 作者:simaopig 来源: 小小子
- 标签: with 作用域 只读
- 发布时间:2011-03-02 22:58:13
建议继续学习
近3天十大热文
-
[351] WordPress插件开发 -- 在插件使用 -
[152] 解决 nginx 反向代理网页首尾出现神秘字 -
[95] IOS安全–浅谈关于IOS加固的几种方法 -
[53] Hacker News 排名算法工作原理 -
[51] cookie窃取和session劫持 -
[48] 到底什么是MVC? -
[47] 程序员技术练级攻略 -
[47] Shell的那些事儿 -
[46] 整理了一份招PHP高级工程师的面试题 -
[46] 浅谈MySQL索引背后的数据结构及算法
