1.什么是你的
这些对象不要动:
- 原生对象
- DOM对象
- 浏览器对象模型(BOM)
- 类库的对象
2.原则
在使用这些不是你的对象的时候
- 不覆盖方法,字面意思
- 不新增方法,会发生命名冲突,你永远不知道新的JS会如何发展,要新增方法请创造插件
- 不删除方法,字面意思,不想别人用某些方法就直接在文档说
3.更好的途径
当你想操作不是自己的对象的时候,你可以这么做:
- 使用继承(原型继承/类型继承)
- 门面模式:将某个[不是自己的对象]放进一个自己创造的对象中去,然后再在自己创造的对象中新增方法来使用[不是自己的对象]
4.关于Polyfill的注解
别用Polyfill
5.阻止修改
ES5里面有新的方法来阻止对对象的扩展修改:
- Object.preventExtension(),不能新增属性和方法
- Object.seal(),不能删除属性和方法
- Object.freeze(),不能修改属性和方法
用这几个方法的时候请使用严格模式