test.lua
local test = {} --定义一张table
test.name = "测试者"
function test:sayHiTo(person)
return self.name .. "say hi to "..person
local callTest = {}
callTest.testFunc = test.sayHiTo
print(callTest.testFunc("jason"))
-----------------------
结果报错:
stdin:1: attempt to concatenate local 'person' (a nil value)
stack traceback:
stdin:1: in function 'test'
stdin:1: in main chunk
[C]: ?
----------------------
错误的原因是 test:sayHiTo(person)等价于test.sayHiTo(test,person),这里其实是两个入参,但是调用callTest.testFunc("jason") 等价于 test.sayHiTo("jason"),这里只有一个入参,所以无法找到'person'这个参数值
-----