为什么这个函数有不同的答案,函数是否在定义的位置执行?

时间:2016-11-07 07:53:53

标签: javascript scope

为什么ss()有不同的答案,函数是否在定义的位置执行?

var scope="global";  

function t(){  
    console.log(scope);  

    function ss()
    {
        console.log(scope);  
    } 

    var scope="local";
    ss();
}

t(); 
ss();

记录:

undefined
local
undefined

1 个答案:

答案 0 :(得分:-1)

首先你有一个重复的命名变量,第二个是" local"在函数下面,所以它将读取上面的函数,如果你想传递它们,你想在这样的函数中有一个参数:

var scope="global";  
function t(e) {  
  console.log(e);
}  
function ss(e) {
  console.log(e);  
} 

scope="local";
t(scope); 
ss(scope);