定义
惰性加载表示函数执行的分支只会在函数第一次调用的时候执行,在第一次调用的过程中,该函数被覆盖为另一个按照合适的方式执行的函数,这样任何对原函数的调用就不用再经过执行的分支。
即首次执行并被重写固化的函数,之后就只会执行被固化后的函数。
例子
var timeStamp = null; // 污染全局
function getTimeStamp(){
if(timeStamp){ // 每次都要判断再输出
return timeStamp;
}
timeStamp = new Date().getTime();
return timeStamp;
}
// 函数内部改变自身的机制 这就是 懒惰函数
var getTimeStamp = function(){
var timeStamp = new Date().getTime();
getTimeStamp = function(){ // 重写
return timeStamp;
}
return getTimeStamp(); // 第一执行时,最后执行重写后的函数
}