在JS中,with 語句的作用是將代碼的作用域設置到一個特定的對象中。其語法如下:with (expression) statement;
定義 with 語句的目的主要是為了簡化多次編寫同一個對象的工作,如下面的代碼:
var qs = location.search.substring(1); var hostName = location.hostname; var url = location.href;
上面幾行代碼都包含 location 對象。如果使用 with 語句,可以把上面的代碼改寫成如下所示:
with(location){ var qs = search.substring(1); var hostName = hostname; var url = href; }
下面的代碼使用 with 語句關聯了 location 對象。這意味着在 with 語句的代碼塊內部,每個變量首先被認為是一個局部變量,而如果在局部環境中找不到該變量的定義,就會查詢
location 對象中是否有同名的屬性。如果發現了同名屬性,則以 location 對象屬性的值作為變量的值。
大量使用with非常耗性能,而且在嚴格模式下使用with語句會報錯。所以建議沒什么 必要不要用with語句