“猴子修补”真的那么糟糕吗?
|
关闭。这个问题是基于意见的。它当前不接受答案。
没有找到相关结果
已邀请:
6 个回复
葛瞎说漓
岭取
。我有某种猴子修补模块
,它修补
以包括patches3ѭ,
和
。我还有另一个猴子修补模块
,它也修补了
以包括patches4ѭ,
和
。现在我陷入困境。我叫
:调用了谁的方法?答案可能取决于许多因素: 我以什么顺序引入补丁模块? 是立即应用补丁还是在某种条件下应用补丁? AAAAAAARGH!蜘蛛正在从内部蚕食我的眼球! 好吧,所以#3可能有点戏剧性。 无论如何,那是猴子修补的问题:可怕的冲突问题。鉴于通常支持该语言的语言具有高度动态性,因此您已经面临许多潜在的“远距离动作”。猴子补丁只是增加了这些。 如果您是负责任的开发人员,那么可以使用猴子补丁程序就很好了。不幸的是,IME,发生的往往是有人看到猴子在打补丁,并说:“甜!我只是在猴子打补丁,而不是检查其他机制是否不合适。”这种情况大致类似于Lisp代码库,该库是由人们在只考虑将其作为功能之前就接触宏而创建的。
马口
通过使用ES5可以避免此问题,该ES5允许您将不可枚举的属性注入到对象中。 这主要是一个高级设计选择,每个人都需要了解/同意这一点。
募磷
畦桨存灯
舜辉
(或举一个较新的示例,为
)编写了一个与官方Stage 4规范完全一致的polyfill,然后在没有它的浏览器中运行了定义
的代码已经:
如果您的实现是正确的,那将是非常好的事情,并且通常在整个Web上都可以完成,因此过时的浏览器可以理解更新的方法。 polyfill.io是此类事情的常用服务。