js的with语句使用方法

Posted JQD

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 

以上是关于js的with语句使用方法的主要内容,如果未能解决你的问题,请参考以下文章

JS--label语句的使用

您是不是需要在switch语句JS中使用默认值[重复]

js中if条件语句以及switch条件语句的使用

js-2018-11-01 关于break和continue语句

Node.js:语法错误:无法在模块外使用 import 语句

原生js switch语句