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語句的執行速度大大下降,性能比較差。