3.6.9 with 语句
with语句的用途是将代码作用域设置为特定的对象。
使用with语句的主要场景是针对一个对象反复操作,这时候将代码作用域设置为该对象能提供便利。
let qs = location.search.substring(1);
let hostName = location.hostname;
let url = location.href;
上面代码中的每一行都用到了location对象。如果使用with语句,就可以少写一些代码:
with(location) {
let qs = search.substring(1);
let hostName = hostname;
let url = href;
}
这里,with语句用于连接location对象。这意味着在这个语句内部,每个变量首先会被认为是一个局部变量。如果没有找到该局部变量,则会搜索location对象,看它是否有一个同名的属性。如果有,则该变量会被求值为location对象的属性。
严格模式不允许使用with,否则会抛出错误。
由于with语句影响性能且难于调试其中的代码,通常不推荐在产品代码中国使用with语句。
网友评论