谁在Lua中调用这个函数,让this指向了我?
- 内容介绍
- 文章标签
- 相关推荐
本文共计318个文字,预计阅读时间需要2分钟。
在Lua函数中获取引用,可以直接在函数内部引用外部变量。以下是一个简化的例子:
lua-- 假设有一个全局变量local person={name='Saucy Jack', speak=function() print('Hello!') end}
-- 定义一个函数,该函数内部引用并调用personfunction introduce() local p=person p.speak() -- 调用person的speak方法end
-- 调用函数introduce()
我想知道如何在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.
本文共计318个文字,预计阅读时间需要2分钟。
在Lua函数中获取引用,可以直接在函数内部引用外部变量。以下是一个简化的例子:
lua-- 假设有一个全局变量local person={name='Saucy Jack', speak=function() print('Hello!') end}
-- 定义一个函数,该函数内部引用并调用personfunction introduce() local p=person p.speak() -- 调用person的speak方法end
-- 调用函数introduce()
我想知道如何在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.

