博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]javascript with延伸的作用域是只读的吗?
阅读量:4077 次
发布时间:2019-05-25

本文共 537 字,大约阅读时间需要 1 分钟。

 

当执行流进入下列任何一个语句时,作用域链将得到延长:

* 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
)
;
}
)
(
)
;
原文地址:http://www.xiaoxiaozi.com/2011/03/02/2018/

转载地址:http://xxsni.baihongyu.com/

你可能感兴趣的文章
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Sum Root to leaf Numbers
查看>>
如何成为编程高手
查看>>
本科生的编程水平到底有多高
查看>>
从mysql中 导出/导入表及数据
查看>>
几个常用的Javascript字符串处理函数 spilt(),join(),substring()和indexof()
查看>>
layui插件的使用
查看>>
9、VUE面经
查看>>
Golang 数据可视化利器 go-echarts ,实际使用
查看>>
mysql 跨机器查询,使用dblink
查看>>
为什么很多程序员都选择跳槽?
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成 - 单机部署(二)
查看>>
C#控件集DotNetBar安装及破解
查看>>
Winform多线程
查看>>
C# 托管与非托管
查看>>
Node.js中的事件驱动编程详解
查看>>
mongodb管理与安全认证
查看>>
nodejs内存控制
查看>>
MongoDB 数据文件备份与恢复
查看>>
MongoDB数据库插入、更新和删除操作详解
查看>>