在老赵的微博 http://blog.zhaojie.me/2011/08/from-the-code-of-no-matter-you-believe-it-or-not.html 中, 有这样一段代码示例.
并且讲解了为什么I.believe(it)是不一定会执行到的, 这确实是个小trick, 很容易让人感觉这个判断是永真的。
我也写了个js程序来模拟这个:
后来发现不需要用闭包 因为本身js在处理全局变量的时候就是闭包
if (you.believe(it) == true || you.believe(it) == false)
{
I.believe(it);
}
并且讲解了为什么I.believe(it)是不一定会执行到的, 这确实是个小trick, 很容易让人感觉这个判断是永真的。
我也写了个js程序来模拟这个:
function a(){
var n = true;
function closure(){
n=!n;
//print(n);
return n;
}
return closure;
}
var believe = a();
if(believe()==true||believe()==false){
print("I.believe.it");
}else{
print("I.NOT.believe.it");
}
后来发现不需要用闭包 因为本身js在处理全局变量的时候就是闭包
var n = true;
function a(){
n=!n;
print(n);
return n;
}
if(a()==true||a()==false){
print("I.believe.it");
}else{
print("I.NOT.believe.it");
}