为什么自我为零?我该怎么做?

时间:2014-11-28 19:20:27

标签: lua

t = {}
a = function() print(self) end
t.a = a
t:a()

我不想传递自我,我想使用语法糖。

2 个答案:

答案 0 :(得分:3)

function foo:bar() ... end以静默方式插入名为self的参数作为第一个参数,使其等效于function foo.bar(self) ... end。它不像Javascript那里有一个神奇的this变量就在那里。

你的第二行应该是:

a = function(self) print(self) end

答案 1 :(得分:2)

你也可以这样做:

t = {}
function t:a() print(self) end