我在 outerFunction 中定义了变量“a”。我想在我的 innerFunction 中使用它。为什么这不起作用,在嵌套函数之间传递数据的最佳方式是什么?
var outerFunction = function () {
var a = 5;
innerFunction();
}
var innerFunction = function () {
alert(a);
}
outerFunction();
我在 outerFunction 中定义了变量“a”。我想在我的 innerFunction 中使用它。为什么这不起作用,在嵌套函数之间传递数据的最佳方式是什么?
var outerFunction = function () {
var a = 5;
innerFunction();
}
var innerFunction = function () {
alert(a);
}
outerFunction();
您必须向内部函数添加参数并从外部函数向其传递值。
var outerFunction = function () {
var a = 5;
innerFunction(a);
}
var innerFunction = function (a) {
alert(a);
}
outerFunction();
innerFunction
不是outeFunction
您的内部功能只是从outerFunction
. 内部函数应该定义如下。
var outerFunction = function () {
var a = 5;
var innerFunction = function () {
alert(a);
}
innerFunction();
}
在 javascript 中,函数绑定到它们的上下文。这意味着内部定义的变量outerFunction
仅存在于那里,而不存在于全局上下文中。但是对于功能,innerFunction
此范围不可用。所以你不能访问它。如果你需要它,你应该将它作为参数传递给innerFunction
明确的。
只是实际上嵌套它们:
var outerFunction = function () {
var innerFunction = function () {
alert(a);
}
var a = 5;
innerFunction();
}
outerFunction();
NowinnerFunction
的范围(有权访问的范围)在声明的wherealert
范围内。outerFunction
a
var 定义变量的局部范围。如果您不打算传递变量,请执行此操作,
var outerFunction = function () {
a = 5;
innerFunction();
}
var innerFunction = function () {
alert(a);
}
outerFunction();
但是干净的方法是传入变量
innerFunction(a)