如何在不将变量定义为全局变量的情况下访问函数内部的变量。
function name() {
var name2 = 20;
};
console.log(name2)
答案 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"));