我想知道如何在Lua函数中获得this
引用。我习惯在函数内部使用this
引用(比如在JavaScript中)引用调用它的对象。
例如,在JavaScript中:
var person = {
'name' : 'Saucy Jack',
'speak' : function() {
console.log("Hi, my name is " + this.name);
};
};
在该示例中,当调用person.speak()
时,函数体中的this
将引用person
(调用该函数)。如何在Lua函数中引用this
?
例如,Lua中的那个person
对象:
local person = {
name = 'Saucy Jack',
speak = function()
print("Hi, my name is " + self.name);
end
};
根据我在Lua中的理解,使用了self
代替this
,但我无法使上述示例起作用。
答案 0 :(得分:5)
首先,根本不需要分号。
接下来,您需要使用self
在表格外部定义函数以进行隐式调用。
并且,使用..
而非+
local person = {
name = 'Saucy Jack',
}
function person:speak() -- or function person.speak(self)
print("Hi, my name is "..self.name)
end
答案 1 :(得分:0)
local person = {
name = 'Saucy Jack',
speak = function(self)
print("Hi, my name is " .. self.name);
end
};
person:speak()
http://codepad.org/eXwWNKme 欢迎来到corona irc