好日子大家,的JavaScript:增廣對象/函數原型避免名稱衝突
有擴充的JavaScript對象和功能元素avoinding衝突問題的方法?讓我更具體:
假設我有2個.js文件:
ex1.js已經Object.prototype.aMethod=function(){/*a function*/}
ex2.js已經Object.prototype.aMethod=function(){/*another function*/}
在這種情況下,ex1.js增強的被ex2.js上的一個覆蓋。
我的問題:
有沒有辦法到增強的影響限制在他的文件上下文,或者更好的,一個模塊環境?
編輯:
其實,我讀Crockford的書」的JavaScript:好的部分,在那裏他使用對象及功能正常的東西做的原型增強,而不談的衝突問題。這很奇怪,因爲這本書傾向於不污染全球命名空間。所以我認爲必須有某種解決方法。
你不應該改變全局的'Object.prototype'。 – 0x499602D2
大衛是對的。你如何解釋你正在試圖用這個做什麼,我們可以建議你應該如何做不同。 – Jivings
我認爲克羅克福德解釋爲什麼變異對象是錯誤的。你至少應該使用'aMethod(thisObj,args ...)'而不是'thisObj.aMethod(args ...)'。 – 0x499602D2