关于lua的getfenv研究
今天跟师傅请教了一下午,总算是把这个玩意搞透彻了
特写此文,以便记录。转载请注明出处。
f = 4 function a() f = 3 print(getfenv(0).f, getfenv(1).f, getfenv(2).f, getfenv(3).f) end A = {} setmetatable(A, {__index = _G}) setfenv(a, A) function b() f = 2 A.a() end B = {} setmetatable(B, {__index = _G}) setfenv(b, B) function c() f = 1 B.b() end C = {} setmetatable(C, {__index = _G}) setfenv(c, C) c()
只有setfenv了环境。。getfenv才能生效。