2

如果我有一个 Lua 函数f,我可以f使用该debug.getupvalue函数查看 's 闭包中的所有上值。同样,如果我有一个文件foo.lua,我可以先查看 upvalues,foo = loadfile(foo)然后debug.getupvalue以与f. 如果我require foo.lua在那里,我可以弄清楚关闭的upvaluesfoo.lua是什么?

4

1 回答 1

2

require的标准加载器不保留加载的模块require。仅保留执行该模块的返回值。

因此,虽然您可以检查模块导出的任何函数的任何上值,但不能检查只能由不可访问函数访问的上值。

于 2017-11-13T06:18:50.607 回答