2017-08-05 74 views

回答

0

由於幾個原因,嚴格模式不允許使用with語句。其中一些由道格拉斯克羅克福德在其着名的with Statement Considered Harmful文章中概述:簡短的版本是,當你在with中使用標識符時,不可能僅僅通過查看代碼(靜態分析)來判斷將解決什麼,因爲什麼它的解決取決於所討論的對象的內容。

考慮:

with (o1) { 
    with (o2) { 
     with (o3) { 
      foo = "bar"; 
     } 
    } 
} 

會發生什麼?那個設置是o3.fooo2.fooo1.foo?全球foo

這使我們人類很難或不可能推斷代碼,並且使JavaScript引擎難以或不可能有意義地優化代碼。

+1

謝謝你明確的答案。我也閱讀了這篇文章,這更清晰。 –

相關問題