最近在研究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(); 

 

 

 

posted on 2012-02-22 18:54  debugman  阅读(468)  评论(0编辑  收藏  举报