内部原因:构造,递归,循环,拷贝,动态执行,字符串操作等
1.过度的封装(过多的创建“庞大的”对象,但是如果在允许的条件下,面向对象的封装是可以提高维护性,而且符合我们的高内聚低耦合原则);
2.少的去使用私有变量在外界访问(向外界通过暴漏接口的方式去访问私有变量很消耗性能);
3.大量构造对象开销很大;
4.动态使用脚本的增加DOM节点改变DOM的拓扑结构在“互联网”当中更是不可取的(可以通过隐藏显示方法);
5.及时释放闭包内没有释放的资源
6.能不用eval动态解析的时候尽量不用
7.简化代码(如if..else...)