JavaScript(ECMAScript) with 語句

rgqancy發表於2016-05-11

有同事,愛嚐鮮,JavaScript ECMAScript with 語句,找了半天不知道區域性變數的出處,原來是with語句搞得鬼。

 

http://www.w3school.com.cn/js/pro_js_statements_with.asp

提示:with 語句是執行緩慢的程式碼塊,尤其是在已設定了屬性值時。大多數情況下,如果可能,最好避免使用它。

 

http://www.cnblogs.com/idche/archive/2012/12/03/2799355.html

眾所周知大家對 with 都沒什麼好感,而且不推薦使用。

可以收集到的理由有:

下面幾條來自 《javascript權威指南》 第 5 版本。

  1:使用with的語句很難優化。
  2:使用with語句速度要比不使用with語句的等價程式碼的速度慢得多。
  3:在with語句中的函式定義和變數初始化可能產生令人驚訝,和直覺相牴觸的行為。
  4:90%(或者更高比例)的with應用場景都可以用其他更好的方式代替。

相關文章