您的位置:首页 > 其它

with语句

2016-04-25 22:41 141 查看
with语句的语法结构如下:
with(object){
statements;
}

一、with语句作用

    with语句会延长作用域链,简单的说,就是将指定的变量对象object添加到作用域链中。这样就可以简化代码。示例如下:with(document.forms[0]){
name.value="lee king";
address.value="Peking";
zipcode.value="100081";
}简化之前的代码是:
with(document.forms[0]){
document.forms[0].name.value="lee king";
document.forms[0].address.value="Peking";
document.forms[0].zipcode.value="100081";
}可见with语句简洁明了,但是会造成执行效率的降低。因为js的解释器需要检查with块中的变量是否属于with指定的对象的属性,这导致语句执行速度下降,开发大型应用项目时,避免使用with语句。
二、with语句延长作用域链原理

var o={href:"sss"};
var href="111";
function buildUrl(){
var qs="?debug=true";
with(o){
href="222";
var url=href+qs;
}
return url;
}
var result=buildUrl();
全局变量href和o本来应该在函数内部作用域链的最后一个,但这里with语句将全局对象o添加到作用域链前端,因而语句href="222"访问的是o.href,函数输出为"222?debug=true"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: