【发布时间】:2016-12-31 02:44:32
【问题描述】:
我正在尝试使用 setfenv 对某些函数进行沙箱处理,我收到以下输出:
123
nil
为什么调用sandboxTest()nil时是testValue,而在callSandboxedTest()中访问却是123?
使用 LuaJIT 2.1.0-beta2 (Lua 5.1)
function sandboxTest()
print(testValue)
end
local aNumber = 123
function callSandboxedTest()
setfenv(1, {
print = print,
testValue = aNumber,
sandboxTest = sandboxTest
})
print(testValue)
sandboxTest()
end
callSandboxedTest()
【问题讨论】: