问题描述
f = function() {return true;};g = function() {return false;};(function() { if (g() && [] == ![]) { f = function f() {return false;}; function g() {return true;} }})();alert(f()); // true or false ?为什么 []==![] 就是这里不懂了 问题补充:antiwise 写道
解决方案
(function() { if (g() && [] == ![]) { //应该看成if((g() && [] )== ![])//因为g()是false后面那个&&[]就没起作用 整个都是false //![]也是false 所以if成立 进入if块内 f = function f() {return false;}; //重新定义f function g() {return true;} //这句没用 } })(); alert(f());//false
时间: 2024-08-02 08:42:17