當前位置:
首頁 > 知識 > 小鄭搞碼事:為什麼建議大家在JS代碼中,永遠不要使用with語句

小鄭搞碼事:為什麼建議大家在JS代碼中,永遠不要使用with語句

點擊右上方紅色按鈕關注「小鄭搞碼事」,每天都能學到知識,搞懂一個問題!

首先,with語句的本意是提供一個訪問深層嵌套對象成員的快捷方式。


一,先搞清with語句的作用

一點都不難理解,下面來看一例子:

小鄭搞碼事:為什麼建議大家在JS代碼中,永遠不要使用with語句

這個例子比較簡單,實例化一個構造函數。然後用with將它的屬性輸出來,同時在with語句中修改屬性名稱。


輸出一:小鄭 100 body

輸出二:小鄭

可以看出,修改屬性成功,with中也將對象的屬性都直接方法成功。然而,糟糕的是,當設置新成員屬性時,它的行為就會變得非常糟糕。


二,有點糟糕的問題

如下代碼:

小鄭搞碼事:為什麼建議大家在JS代碼中,永遠不要使用with語句

在with語句里我添加了一個屬性weight,我本意是想給這個people對象添加一個屬性。然而卻沒有添加成功。


輸出一:小鄭 100 80

輸出二:undefined

最後總結建議:

出於這種問題,所以永遠不要使用with語句,而用var去代替它。其實JSLint不期望看到with語句。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 小鄭搞碼事 的精彩文章:

在移動端事件中,那個應用範圍最廣的觸摸事件,需要重點關注
CSS偽類家族中,有個偽類focus為什麼還要出一個focus-within

TAG:小鄭搞碼事 |