【发布时间】:2018-09-13 19:18:16
【问题描述】:
我正在学习 javascript 范围链。当一个变量在函数中声明时,它在另一个函数中是看不到的。比如myVar是在函数a中声明的,在函数b中是看不到的:
function b() {
console.log(myVar);
}
function a() {
var myVar = 2;
b();
}
a(); //->myVar is not defined
但是为什么一个函数可以将它的参数传递给它的内部函数调用(而不是嵌套的新函数)?参数是否应该是函数的局部变量?
function b(str) {
console.log(str);
}
function a(str) {
b(str);
}
a("a's argument"); //->"a's argument"
【问题讨论】:
-
JS中的一切都是传值的,对象和数组也是传值的,为什么这些值不能传给程序员想要的函数?
标签: javascript scope arguments