with语句
作用域名--一个可以按序检索的对象列表,通过它可以进行变量名的解析。with语句用于临时拓展作用域链,语法如下:
with ( object )
statement
这条语句将object添加到作用域链的头部,然后执行statement,最后把作用域链恢复到原始状态。
在严格模式下是禁止使用with语句的,并且在非严格模式里也是不推荐使用with语句的,尽可能避免使用with语句。那些使用with语句的JavaScript代码非常难于优化,并且同没有使用with语句的代码相比,它运行得更慢。
在对象嵌套层次很深的时候通常会使用with语句来简化代码编写。例如,在客户端JavaScript中,可能会使用类似下面这种表达式来访问一个HTML表单中的元素:
document.forms[0].address.value
如果这种表达式在代码中多次出现,则可以使用with语句将form对象添加至作用域链的顶层:
with( document.forms[0] ){
//---直接访问表单元素
name.value = ' ';
address.value = '';
}
这种方法减少了大量的输入,不用再为每个属性名添加document.forms[0]前缀。这个对象临时挂载在作用域链上,当JavaScript需要解析诸如address的标识符时,就会自动在这个对象中查找。
var f = document.forms[0];
f.name.value = "";