JS 中的with語法現象

這是一個較少用到的語法:關於with(A){...}

功能:關聯對象A屬性,在with代碼塊內部,每個變量首先被認爲是一個局部變量,如果局部變量與A對象的某個屬性同名,則這個局部變量會指向A對象屬性。

示例代碼:

var qs = location.search.substring(1);
var hostName = location.hostname;
var url = location.href;
//可以簡寫爲:
with (location){
  var qs = search.substring(1);
  var hostName = hostname;
  var url = herf;
優點:簡化多次編寫訪問同一對象的工作。

不足:

1. 性能問題,js引擎在初始化時,無法確定with內的屬性所屬對象,所以無法對代碼優化;

2. 語義不明,難以調試

總得來說,還是不建議使用,瞭解這個語法現象就好!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章