概念及用处
- 惰性函数是针对优化频繁使用的函数
- 它常用于函数库的编写、单例模式中
示例1
要求:编写一个函数test,以后每次执行,返回第一次执行时候创建的new Date().getTime()
function test() {
var t = new Date().getTime();
test = function () {
return t;
}
return test();
}
示例2
要求:封装一个addEvent函数,具有较好的兼容性
function addEvent(dom, type, handler) {
if (dom.addEventListener) {
dom.addEventListener(type, handler, false);
addEvent = function (dom, type, handler) {
dom.addEventListener(type, handler, false);
}
} else {
dom.attachEvent('on' + type, handler);
addEvent = function (dom, type, handler) {
dom.attachEvent('on' + type, handler);
}
}
}
简单的说,惰性函数就是在函数第一次执行的时候,就改变了函数本身内容,以后每次执行,都是执行新函数的代码。