2014-08-29 100 views
2

我對JavaScript相當缺乏經驗,但我試圖爲人們創建一個庫來使用。假設我在我自己的js文件中將函數window.onerror設置爲我自己的函數,但其​​他人也將window.onerror分配給代碼中的函數。我害怕覆蓋函數或被我的函數覆蓋

如果他們在我之前執行他們的js代碼,我的window.onerror函數不會覆蓋他們嗎?如果他們在我的後面執行他們的js代碼,會不會發生相反的情況?現在,window.onerror僅僅是一個例子,但如果我在我的代碼中使用jquery來獲得全局範圍的$ .ajaxComplete,有沒有辦法在不知道順序的情況下適應兩個方法?

+0

Hava看看require.js(http://requirejs.org/) - 如果使用模塊化方法,可以避免大多數衝突。它是JQuery兼容的。 – tucuxi 2014-08-29 16:15:19

+4

實現一個[namespace](http://stackoverflow.com/questions/881515/javascript-namespace-declaration) – 2014-08-29 16:15:24

+3

大多數(或全部)事件都有一個addEventListener對應,它應該完全解決onxxx問題 – Torben 2014-08-29 16:26:40

回答

0

只有全局變量和函數會有這個問題(窗口是一個全局變量)。我不明白爲什麼你需要對整個庫有一個普遍的錯誤,那麼對於每個可能出錯的東西的具體錯誤回調如何。

爲此,我會推薦jQuery Deferred,在http://joseoncode.com/2011/09/26/a-walkthrough-jquery-deferred-and-promise/上有一個很棒的教程。

希望這會有所幫助。