前端性能優(yōu)化有哪些方法 js面向?qū)ο笾衪his關(guān)鍵字在哪些情況指針會(huì)改變?
js面向?qū)ο笾衪his關(guān)鍵字在哪些情況指針會(huì)改變?你應(yīng)該讀一下湯姆叔叔的分析??赐曛?,我對(duì)這一點(diǎn)也有了困惑的理解。后來,我參考了一些其他材料??荚嚱Y(jié)束后,我對(duì)它進(jìn)行了總結(jié)和測試。我覺得這個(gè)指針沒那么
js面向?qū)ο笾衪his關(guān)鍵字在哪些情況指針會(huì)改變?
你應(yīng)該讀一下湯姆叔叔的分析??赐曛?,我對(duì)這一點(diǎn)也有了困惑的理解。后來,我參考了一些其他材料。考試結(jié)束后,我對(duì)它進(jìn)行了總結(jié)和測試。我覺得這個(gè)指針沒那么復(fù)雜。記住一個(gè)相對(duì)簡單的理解,在全局上下文中,這是指窗口。在函數(shù)范圍中,這是指如何調(diào)用它。在嚴(yán)格模式下,這在全局環(huán)境中指向未定義。另外,call和apply會(huì)影響這個(gè)方向。bind方法中的這個(gè)值被綁定到第一個(gè)參數(shù)。構(gòu)造函數(shù)中的這一點(diǎn)指向構(gòu)造函數(shù)本身。在new中,它指向?qū)嵗膶?duì)象。在DOM事件中,這通常指向觸發(fā)的DOM。
js使用call的調(diào)用和直接調(diào)用函數(shù)的區(qū)別?
如果函數(shù)中有此項(xiàng),它將指向第頁。如果直接調(diào)用,函數(shù)中的這個(gè)將指向window對(duì)象。在陣列模式下輸入?yún)?shù)與按順序輸入?yún)?shù)之間也存在差異。其他的完全一樣。我能想到的另一個(gè)區(qū)別是便于調(diào)試。在chrome調(diào)試器出現(xiàn)之前,很多調(diào)試都是通過alert進(jìn)行的。如果一個(gè)函數(shù)被多個(gè)節(jié)點(diǎn)調(diào)用,比如事件的順序傳輸,那么警報(bào)和控制臺(tái)都無法知道函數(shù)中的確切調(diào)用方。使用call和apply,您可以通過它了解調(diào)用者。當(dāng)然,現(xiàn)在可以一步一步地調(diào)試斷點(diǎn)了,這個(gè)函數(shù)已經(jīng)不重要了。