减少不必要的判断的次数,如判断当前代码的运行环境,浏览器内核版本型号等;可在程序一开始运行的时候就可执行判断,例如以下的工具函数:
可把这些判断写在立即执行函数中,这些判断在最开始的时候就会执行,之后的调用就可以直接使用其判断的结果,达到减少不必要的判断的次数,可使用IIFE优化如下:
同理,可以用于不同运行环境的请求方式:
然而这种方式也不是万能的,比如以下这个例子,减少了内存波动(有一定的性能消耗)的问题:
但是这个函数在多次调用的过程中由于闭包内存得不到释放,会造成内存泄漏,这也是不合理的,于是便不能使用IIFE,取而代之的是使用高阶函数(react源码中大量使用),在使用时创建一个对象来接收其返回的函数(功能函数),再执行该对象函数实现功能,最后只为null释放内存,减少内存持续波动的情况(来提高性能):