点定义(.) | 冒号定义(:) | |
---|---|---|
点调用(.) | 没有默认self,传入参数=接受参数 | 有默认self,self=第一个传入参数,传入的第二个参数为接受的第一个参数,依次类推 |
冒号调用(:) | 没有默认self,传入第一个参数=self(对象本身) | 有默认self,self=(对象本身),传入参数=接受参数 |
代码示例
module = {}
function module.log(a, b )
-- body
print(a)
print(self)
end
function module:log2( a,b )
-- body
print(a)
print(self)
end
print("--------点定义 点调用--------")
module.log(1111)
print("--------点定义 冒号调用--------")
module:log(1111)
--------点定义 点调用--------
--1111
--nil
--------点定义 冒号调用--------
--table: 0042E1B0
--nil
print("----------------")
print("--------冒号定义 点调用--------")
module.log2(1111,2222)
print("--------冒号定义 冒号调用--------")
module:log2(1111,2222)
--------冒号定义 点调用--------
--2222
--1111
--------冒号定义 冒号调用--------
--1111
--table: 0042E1B0
总结
-
冒号调用
1. 使用点定义的,默认第一个参数是对象本身
2. 如果是使用冒号定义的,默认有隐藏self -
点调用
1. 使用点定义的,没有默认self,传入参数=接受参数
2. 如果是使用冒号定义的, 有默认self,self=第一个传入参数,传入的第二个参数为接受的第一个参数,依次类推