with的语法结构为:
with(object) { /* 语句 */ }
with主要是用来对对象取值的, 如下 所示:
with(obj) { var newa = a; var newb = b; console.log(newa+newb); }
该语句 等价于:
var newa = obj.a; var newb = obj.b; console.log(newa+newb);
with的 优点:
当with传入的值非常复杂时,即当object为非常复杂的嵌套结构时,with就使得代码显得非常简洁。
with的缺点:
js的编译器会检测with块中的变量是否属于with传入的对象, 上述例子为例,js会检测a和b是否属于obj对象,这样就会的导致with语句的执行速度大大下降,性能比较差。