[英]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.