最近在研究javascript, 今天看了些javascript 霸气的写法,不禁感慨感慨,可能是自己写的太菜了,所以才觉得别人写得好!所谓,不是对手太强,而是自己太弱!
好,上码:
self-overwriting functions: //此法妙在 next 在自己本身函数内被改写!其实在c语言中也是可以的。用函数指针就可以做到!
function next(){
var count=1;
next = function(){
return count++;
};
return count;
}
next(); //2
next(); //3
lazy function definition:
//此法妙处在于 lazy 函数中返回 的是return lazy(); 即lazy();函数的执行结果,注意这不是递归。
//而是在执行新的lazy函数,因为lazy函数刚被赋了新的匿名函数值。同样C的函数指针亦可以做到。
funciton lazy(){
var result = 1+1;
lazy=function(){
return relult;
}
return lazy();
}
lazy(); //2
lazy(); //2
return funciont: //这种模式没什么新意了,经常用
funciont setup(){
alert(1);
return funcion(){
alert(2);
};
}
var next = setup(); // alert 1
next(); //alert 2
private/privileged: //
function myfunc(){
var a = 1;
this.say = function(){
alert(a);
};
}
new myfunc().say(); // 1
//这和以下的方式是一样的:
function myfunc(){
var a=1;
function say(){
alert(a);
}
this.say = say;
}
new myfunc().say();