日期:2014-05-16  浏览次数:20285 次

js 小提问
   function fn_1() {
            var c = "3";
            alert(c); // 3
            var c = "ttc"; //在这里给了实例 c 上面还是可以获取到值
         
            var call_back = function(a) {
                alert(a);
                alert(c); //undefined
                var c = "ttc"; // //在这里给了实例 c 上面就获取不到值了是为什么呢
            }
            fn_2(call_back);
        }
        function fn_2(call_back) {
            var a = "ttc";
            call_back(a);
        }


------解决方案--------------------
javascript么有块级作用域 
你在函数里任意位置定义的变量都可以在该函数的任意位置访问
所以你在callback定义a时就已经覆盖掉了外面的a  只是你alert时还没给a赋值  所以是undefined
------解决方案--------------------
引用:
为什么在call back 里是 undefined 呢 ? 


   function fn_1() {
            var c = "3";
            alert(c); // 3
            var c = "ttc"; //在这里给了实例 c 上面还是可以获取到值