最开始接触这个语法的是vue2源码中
with语句:为一个或一组语句指定默认对象
用法:with(<对象>)<语句>
语法:
with(object){
/*语句*/
}
with主要是用来对对象取值的,如下所示:
var obj = {a:1,b:2}
with(obj){
var newa = a;
var newb = b;
console.log(newa+newb)
}
该语句等价于:
var newa = obj.a;
var newb = obj.b;
console.log(newa+newb)
x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10);
y = Math.tan(14 * Math.E);
with (Math) {
x = cos(3 * PI) + sin(LN10);
y = tan(14 * E);
}
with优点:
当with传入的值非常复杂时,即当object为非常复杂的嵌套结构时,with使整体代码结构更加简单
缺点:
js的编译器会检测with块中的变量是否属于with传入的对象,上述例子,js会检测a和b是否属于obj对象,这样会导致with语句的执行速度大大下降,性能比较差