[英]Outer function returns an inner function with access to values from outer function
我需要创建一个函数,该函数将传递给数据库服务器。 返回的函数将单个项目作为参数,并将该项目与需求列表进行比较。
为此,我需要一个函数生成函数,该函数将数组作为参数,并返回内置该数组的内部函数。
这是一个例子:
function create_query (list_of_requirements) {
return function (item) {
var is_match = true
// the next function sets is_match to false if the item fails
list_of_requirements.forEach(check_if_item_meets_requirement)
return is_match
}
}
使用此示例:
function search (parsed_user_string) {
db.get(create_query(parsed_user_string)).then(function(results){
show_results(results)
})
}
如何将需求列表构建到内部函数中?
我需要使用闭包。
这是解决方案的一个简单示例。
function makePrinter (num) {
(return function () {
print(num)
})
}
接着:
var print5 = makePrinter(5)
print5() > prints 5!
我仍然不太了解闭包如何完成此任务,但确实如此。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.