with语句
2016-04-25 22:41
141 查看
with语句的语法结构如下:
一、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"
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"
相关文章推荐
- 网关,DNS,子网掩码等
- Boost Asio 介绍
- Android之AsyncTask的内存泄露问题
- XML各种解析方式优劣对比
- Android中重要数据解析JSON工具之gson库的使用
- java实现Bingo游戏优化,可以控制次数期望
- XML常见解析方法
- STM32生成bin文件
- msyql 连接测试问题
- (多核DSP快速入门)0.前言+CCS的安装
- 视频录制
- Java 带转义字符字符串长度
- C++作业4
- 回调函数模型设计
- 车销 商场 批发零售无线POS开单 智能POS开单打印 开单APP应用-云POS扫描打印一体方案
- [android] 看博客学习hashCode()和equals()
- java.sql.SQLException:value;'0000-00-00'can not be represented as java.sql.date
- eMMC应用教程:关于RPMB的应用
- zoj3946--Highway Project
- (转)大型网站架构系列:负载均衡详解(1)