t = {}
a = function() print(self) end
t.a = a
t:a()
我不想传递自我,我想使用语法糖。
答案 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