

载入方式一
var flag = 1;
function test1() {
 if(typeof flag === 'undefined') {
 test1 = function() {
 return 0;
 }
 } else if(flag === 1) {
 test1 = function() {
 return 1;
 }
 } else {
 test1 = function () {
 return -1;
 }
 }
 return test1();
}
这里if语句的每个分支都会为test1变量赋值,有效覆盖了原有的函数,最后一步便是调用新赋的函数,下一次调用test1()的时候就会直接调用被分配的函数,就不会再走if语句了,这样就可以提高性能。
载入方式二
var flag = 1;
var test2 = (function() {
 if(typeof flag === 'undefined') {
 return function() {
 return 0;
 }
 } else if(flag === 1) {
 return function () {
 return 1;
 }
 } else {
 return function () {
 return -1;
 }
 }
})();
不同点是使用了立即执行函数,通过var来定义函数,在每个if分支中return一个函数
总结
这两种方式都能避免执行不必要的代码。方式一中第一次调用会损失性能,方式二重首次加载时会损失性能
更多关于JavaScript相关内容可查看本站专题:《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
