当前位置 : 主页 > 网络编程 > lua >

‘this’引用了Lua中的函数调用者

来源:互联网 收集:自由互联 发布时间:2021-06-23
我想知道如何在Lua函数中获得这个引用.我习惯在函数内部(如在 JavaScript中)引用此引用,该函数引用调用它的对象. 例如,在JavaScript中: var person = { 'name' : 'Saucy Jack', 'speak' : function() { con
我想知道如何在Lua函数中获得这个引用.我习惯在函数内部(如在 JavaScript中)引用此引用,该函数引用调用它的对象.

例如,在JavaScript中:

var person = {
    'name' : 'Saucy Jack',
    'speak' : function() {
        console.log("Hi, my name is " + this.name);
    };
};

在该示例中,当调用person.speak()时,函数体中的这将引用person(调用该函数).如何在Lua函数中获得对此的引用?

例如,Lua中的那个人对象:

local person = {
    name = 'Saucy Jack',
    speak = function() 
        print("Hi, my name is " + self.name);
    end
};

根据我在Lua中的理解,使用self而不是这个,但我不能让上面的例子起作用.

首先,根本不需要分号.

接下来,您需要在表的主体外部定义函数,以便使用self进行隐式调用.

并且,字符串连接是使用..而不是

local person = {
    name = 'Saucy Jack',
}
function person:speak()  -- or function person.speak(self)
    print("Hi, my name is "..self.name)
end

这是一个working codepad sample.

网友评论