为什么 self 是 nil?我该怎么做?

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

我不想传入 self,我想使用语法糖。 
点赞
用户646619
用户646619

function foo:bar() ... end 悄悄地插入了一个名为 self 的参数作为第一个参数,使其等同于 function foo.bar(self) ... end。这与 JavaScript 不同,其中有一个神奇的 this 变量就在那里。

你的第二行应该是:

a = function(self) print(self) end
2014-11-28 20:02:35
用户107090
用户107090

你也可以这样做:

t = {}
function t:a() print(self) end
2014-11-28 20:06:47