JavaScript Functions that return function
本问题已经有最佳答案,请猛点这里访问。
我在解决JS上的一个难题时发现了以下代码:
1 2 3 4 | var xx = (function () { var e = 0; return function () { return e++ } })(); |
有人问XX的价值是多少。
我在google上搜索过返回函数的函数,但找不到任何有用的东西,我对返回函数的函数不太熟悉。请帮忙。
在JavaScript中,函数是第一类对象;也就是说,它们可以像其他任何东西一样传递和分配给变量。所以在您的例子中,
这样做的一个好处是,您可以像在示例中那样实现私有变量。通过在外部函数内定义
1 2 3 | xx(); xx(); xx(); |
每次增加并返回
是的,它返回函数,每次执行此函数xx();它将返回一个递增的值
希望这能回答这个问题
让我们将这些语句分解为其组成部分:
1 | var xx =(function(){var e = 0; return function(){return e++}})(); |
号
江户十一〔七〕号将0分配给E
埃多克斯1〔8〕
返回函数f,其中:
2.1返回e的值
2.2将e增加1
埃多克斯1〔9〕
为xx分配作用域为
埃多克斯1〔12〕
执行功能F:
4.1返回e//0的值
4.2 E增量为1//E=1
4.3
因此,
如果你再打电话给
1 2 | xx(); // returns 1 xx = f(){ return e++;}[e=2] // returns 2 and increment e by one |