javascript中的with语句学习笔记及用法
在JS中,with语句的作用是将代码的作用域设置到一个特定的对象中。其语法如下:with(expression)statement;
定义with语句的目的主要是为了简化多次编写同一个对象的工作,如下面的代码:
varqs=location.search.substring(1); varhostName=location.hostname; varurl=location.href;
上面几行代码都包含location对象。如果使用with语句,可以把上面的代码改写成如下所示:
with(location){ varqs=search.substring(1); varhostName=hostname; varurl=href; }
下面的代码使用with语句关联了location对象。这意味着在with语句的代码块内部,每个变量首先被认为是一个局部变量,而如果在局部环境中找不到该变量的定义,就会查询
location对象中是否有同名的属性。如果发现了同名属性,则以location对象属性的值作为变量的值。
大量使用with非常耗性能,而且在严格模式下使用with语句会报错。所以建议没什么必要不要用with语句
实例扩充:
With语句(类似于VB中的) functionStudent(name,age){ this.name=name; this.age=age; } varstu=newStudent('罗纳尔多',36); with(stu){ //With语句(类似于VB中的),用于简化代码 alert("Name:"+name+",Age:"+age); }