1:重新看看函数的调用
测试001:
a = {}
function a:Atest()
print("a print")
end
b = {}
function b:Btest()
print("b print")
end
a.Atest()
a:Atest()
b.Btest()
b:Btest()
================debug===============
a print
a print
b print
b print
测试002:
a = {}
function a:Atest(n)
print("a print",n)
end
b = {}
function b:Btest(n)
print("b print",n)
end
a.Atest(1)
a:Atest(1)
b.Btest(1)
b:Btest(1)
====================debug===============
a print nil
a print 1
b print nil
b print 1
Q:发现,用点方法调用方法,打印出来的是 nil ,但是我们已经传入了 1
A:点方法调,传入的第一个参数是self(this.table),如果有多个参数,我们需要手动传入第一个参数this.table
上面 b.Btest(1) Lua把我们传入的第一个参数 1,当作了this.table
而:方法调,已经帮我们传入了self(有点像个语法糖),我们只需要传入其他剩余的参数就行了
另外的博客有比较清楚的解释