作者:LAMP小白 点击:2134 发布日期: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