## `with() {}`
不要使用
使用 `with` 讓你的代碼在語義上變得不清晰. 因為 `with` 的對象, 可能會與局部變量產生沖突, 從而改變你程序原本的用義.
下面的代碼是干嘛的?
```
with (foo) {
var x = 3;
return x;
}
```
答案: 任何事. 局部變量 `x` 可能被 `foo` 的屬性覆蓋, 當它定義一個 setter 時, 在賦值 `3` 后會執行很多其他代碼.
所以不要使用 `with` 語句.