前言:
1、代码库这里重点指现在或者未来被广泛复用的代码库
2、代码这里重点指像js这样的动态语言(C#和Java不存在本文提到的问题)
以js为例,
可以给原生对象或代码库对象扩展功能,利用prototype特性。
Array现在(2014年)没有Sort函数,你现在可以给他扩展,Array.prototype.Sort=function(p1,p2){}
假设相关协议在三年后(2017年)发布标准说,Array有一个Sort的函数并且只有一个参数。那么你的项目在2017年的时候势必出现bug。
目前typeof null=='object'
如果未来有一天修复了这个bug,势必项目会出现Bug。
所以,我们能做的是有两点,第一不要扩展原生对象和库对象;第二应用公共规范