如何在不将变量定义为全局变量的情况下访问函数内部的变量

时间:2018-08-01 09:34:25

标签: javascript function variables scope declaration

如何在不将变量定义为全局变量的情况下访问函数内部的变量。

function name() {
  var name2 = 20;
};

console.log(name2)

3 个答案:

答案 0 :(得分:3)

简短的回答是您无法访问此函数范围之外的函数内部声明的变量

在这里,您试图访问name2函数范围之外的naem()变量,这是不可能的,因为用var关键字声明的变量仅在声明该变量的块中可见

如果选中 the var MDN reference ,您会看到:

  

使用var声明的变量的作用域是其当前的执行上下文,它是封闭函数或对于在外部声明的变量任何功能,全局的。如果您重新声明一个JavaScript变量,它将不会丢失其值。

有关更多详细信息,您可以检查:

答案 1 :(得分:-1)

function name() {
  var name2 = 20;
  return name2;
};
console.log(name());

您还可以在输出范围内声明局部变量,并在进行函数调用时将其作为引用传递,然后可以使用函数更改变量的值。

答案 2 :(得分:-1)

使用clauser

function showName (firstName, lastName) {
var nameIntro = "Your name is ";
    // this inner function has access to the outer function's variables, including the parameter
function makeFullName () {     
return nameIntro + firstName + " " + lastName;
        
}

return makeFullName ();
}

console.log(showName ("Michael", "Jackson"));