惰性函数定义

惰性函数定义

作者:LAMP小白  点击:1996  发布日期:2013-01-03 18:47:00  返回列表
惰性函数定义(lazy function definition),当第一次执行时才被正确的定义,并且具有向后的惰性,执行更少的工作

他与返回函数类似,不过他在第一次执行完成之后就覆盖了最初的对象,避免的返回函数重新赋值时,属性也被初始化的局面

var haha = function() {
    console.log('init');
    this.name = 'inited!';
    this.num = 0;
    haha = function() {
        this.num += 100;
        console.log(this.num);
    };
};
haha();//init
haha();//100
haha();//200


不过他的缺点在于,当重定义自身时,已经添加到原始函数的属性都会丢失,如果该函数使用了一个不同的名称,那么重定义部分永远都不会执行

var haha = function() {
    console.log('init');
    this.name = 'inited!';
    this.num = 0;
    haha = function() {
        this.num += 100;
        console.log(this.num);
    };
};
haha.funcName = 'this is haha function';
//////////
var a = haha;
a();//init
a();//init
console.log(a.funcName);//this is..
haha();//100
haha();//200
console.log(haha.funcName);//undifined



上一篇:返回函数 下一篇:快递查询API
0