亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

$location和window.location區別是什么

$location和window.location區別是什么

慕斯709654 2018-09-07 09:09:10
在學習AngularJS的服務時,文中提到使用$location服務比使用window.location對象更好,它們的具體區別是什么,各自的優劣是什么,想具體了解一下。
查看完整描述

1 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

$location服務是對所有瀏覽器中都存在的window.location對象的封裝。那么,為什么需要使用$location服務,而不是直接使用window.location呢?

告別全局變量

關于全局變量,window.location是一個很好的例子(實際上,瀏覽器中的window和document兩個對象也是很好的例子)。如果你的應用中存在全局變量,那么對它的測試、維護以及使用都會很麻煩(即使目前沒有造成麻煩,但是長遠來看必然會)。$location服務將會屏蔽這種污染(我們一般把全局變量稱為全局空間污染);同時,當你進行單元測試的時候,可以利用$location服務注入假數據,從而可以測試瀏覽器的location細節

API

如果使用$location,那么就可以按照任何你喜歡的方式來使用。而如果使用window.location,當其中的內容發生變化時,你需要自已通知AngularJS,并且需要負責監聽。

HTML5集成

$location服務非常智能,它能夠感受到瀏覽器是否可以使用HTML5 API。如果可以,它會自動使用這些API;如果不可以,它會回退并使用默認的處理方式。


查看完整回答
反對 回復 2018-09-30
  • 1 回答
  • 0 關注
  • 1489 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號