[英]Javascript scope: passing a variable from an outer function to an inner function
我在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
定义的变量outerFunction
存在于那里而不存在于全局上下文中。 但是对于函数innerFunction
此范围不可用。 所以你无法访问它。 如果你需要它,你应该innerFunction
地将它作为参数传递给innerFunction
。
只是实际嵌套它们:
var outerFunction = function () {
var innerFunction = function () {
alert(a);
}
var a = 5;
innerFunction();
}
outerFunction();
现在, innerFunction
的范围( alert
具有访问innerFunction
)位于声明a
的outerFunction
的范围内。
var定义变量的局部范围。 如果您不打算传递变量,那么执行此操作,
var outerFunction = function () {
a = 5;
innerFunction();
}
var innerFunction = function () {
alert(a);
}
outerFunction();
但干净的方法是传递变量
innerFunction(a)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.