好日子大家,的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