Lua中,是否可能将参数绑定到作为另一个函数的参数传递的回调函数中?(JavaScript的"bind"等价物)

我有一个第三方API,它有一个事件监听器添加函数,该函数以回调函数作为参数,当事件发生时将触发该回调函数。我想向该回调函数传递参数。我正在寻找Lua版本的JavaScript的bind

Lua代码:

EventListenerAddingFunction(myCallbackFunction); // 我想在这里向回调函数添加参数

我在JS中如何做到:

EventListenerAddingFunction(myCallbackFunction.bind({}, myParameter));

在Lua中是否可以实现?

点赞
用户8621712
用户8621712

Lua 不支持这种特性,所以我能想到的最接近的方法就是创建一个闭包包装器:

EventListenerAddingFunction(function(...) myCallbackFunction({}, myParameter, ...) end)

这样每次调用回调函数时都会传递你的参数,其他所有回调函数的参数都会在下一次传递。如果你不知道你的参数,使用 ...(我不知道它们的用法,所以我使用了变长参数),最好是传递确切数量的参数。

2020-11-24 21:04:18