use*_*682 4 javascript function
我正试图通过在线教程解决问题.考虑以下功能:
var badFunction = function() {
return function() {
return "veryBad"
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,badFunction返回一个返回的函数"veryBad".我想存放"veryBad"在里面theBad.如何调用返回的内部函数?这个答案是不可接受的:
var theBad = "veryBad!";
Run Code Online (Sandbox Code Playgroud)
这也不是:
var theBad = badFunction();
theBad();
Run Code Online (Sandbox Code Playgroud)
虽然这两个都有效.那么如何调用内部函数呢?
Li3*_*357 10
只需调用返回值:
var theBad = badFunction()();
Run Code Online (Sandbox Code Playgroud)
这将首先调用该函数badFunction,然后在函数完成后,它将调用返回的函数.评估看起来像这样:
badFunction()();
^^^^^^^^^^^^^
Step 1, calls badFunction
Run Code Online (Sandbox Code Playgroud)
然后,一旦badFunction被调用,它将返回一个匿名函数表达式:
(function() { // <-- This is the return value of badFunction
return "veryBad"
})();
^^
Step 2, call the returned function expression for "veryBad"
Run Code Online (Sandbox Code Playgroud)
当然,您可以将返回的函数存储在中间变量中,然后调用:
var veryBadFunc = badFunction();
var theBad = veryBadFunc();
Run Code Online (Sandbox Code Playgroud)
这将存储返回的函数veryBadFunc,您可以在以后调用并存储theBad.这正是你在上一次尝试中所做的.问题是您必须对返回值执行某些操作,例如将其存储在变量中以供以后使用.
| 归档时间: |
|
| 查看次数: |
40 次 |
| 最近记录: |