《编写可维护的 JavaScript》读书笔记第11章:不是你的对象不要动
1. 什么是你的 只要维护代码是你的责任,那么你就拥有这些对象。 如果你的代码没有创建这些对象,不要修改它们,包括: 原生对象(Object、Array 等) DOM 对象(例如,document) 浏览器对象模型(BOM)对象(例如,window) 类库的对象 2. 原则 把已存在的 JavaScript 对象如一个实用工具函数库一样来对待。 不覆盖方法 不新增方法 不删除方法 2.1 不覆盖方法 // 不好的写法 document._orginalGetElementById = document.getElementById; document.getElementById = function(id) { if (id == "window") { return window; } else { return document._originalGetElementById(id); } }; 在一个大型的项目中,一个此类问题会导致浪费大量时间和金钱。 2.2 不新增方法 为非自己拥有的对象增加方法,会导致命名冲突。因为一个对象此刻没有某个方法不代表它未来也没有。如果将来原生的方法和你的方法行为不一致,你将陷入一场代码维护的噩梦。 大多数 JavaScript 库代码有一个插件机制,允许为代码库安全地新增一些功能,这是最佳最可维护的途径。 2.3 不删除方法