Ruby's Louvre

每天学习一点点算法

导航

函数的作用域在各浏览器的混乱情况

      if(true) {
        function someFunc(){
          return 1;
        };
      } else {
        function someFunc(){
          return 2;
        };
      }
      var notSomeFunc = function someFunc(){
        return 3;
      };
      alert(someFunc());

FF输出1,表现为存在“块作用域”。

IE6-IE8输出3,这是它处理命名函数表达式时出现bug,创建两个截然不同的函数对象。

正确的输出应该为2。

相关链接:

posted on 2010-11-16 21:24  司徒正美  阅读(1156)  评论(2)    收藏  举报