js的with语句使用方法

with语句的作用是暂时改变作用域链、减少的重复输入。

 

其语法结构为:

 

Js代码  收藏代码
  1. with(object){  
  2.       //statements  
  3. }  

 

举一个实际例子吧:

 

Js代码  收藏代码
  1. with(document.forms[0]){  
  2.        name.value = "lee king";  
  3.        address.value = "Peking";  
  4.        zipcode.value = "10000";  
  5. }  

与之对应的传统的写法是:

 

Js代码  收藏代码
  1. document.forms[0].name.value = "lee king";  
  2. document.forms[0].address.value = "Peking";  
  3. document.forms[0].zipcode.value = "10000";  

可以看出with语句的简洁明了,不过在代码的世界里是很难找到真正的完美。

 

js的解释器需要检查with块中的变量是否属于with包含的对象,这将使with语句执行速度大大下降,并且导致js语句很难被优化。为了兼顾速度与代码量可以找到一个比较折衷的方案:

 

Js代码  收藏代码
  1. var  form = document.forms[0];  
  2. form.name.value = "lee king";  
  3. form.address.value = "Peking";  
  4. form.zipcode.value = "10000";  

 

 所以在以后的高效代码开发中我们应该尽可能的避免使用with语句。)

1)简要说明 
       with 语句可以方便地用来引用某个特定对象中已有的属性,但是不能用来给对象添加属性。要给对象创建新的属性,必须明确地引用该对象。 

2)语法格式 
with(object instance) 

        //代码块 

       有时候,我在一个程序代码中,多次需要使用某对象的属性或方法,照以前的写法,都是通过:对象.属性或者对象.方法这样的方式来分别获得该对象的属性和方法,着实有点麻烦,学习了with语句后,可以通过类似如下的方式来实现: 
with(objInstance) 

       var str = 属性1; 
..... 
} 去除了多次写对象名的麻烦。 

3)举例 
<script language="javascript"> 
<!-- 
function Lakers() { 
       this.name = "kobe bryant"; 
       this.age = "28"; 
       this.gender = "boy"; 

var people=new Lakers(); 
with(people) 

       var str = "姓名: " + name + "<br>"; 
       str += "年龄:" + age + "<br>"; 
       str += "性别:" + gender; 
       document.write(str); 

//--> 
</script> 
代码执行效果如下: 
姓名: kobe bryant 
年龄:28 
性别:boy 

posted @ 2016-04-06 16:58  ShirleyHe  阅读(365)  评论(0编辑  收藏  举报