有文件如:大熊.lua
局部 大熊 = {名字="大熊"}
函数 大熊:给( ... )
本身.熊妈 = "蜂蜜"
谁 = ... 或 "没谁"
输出(谁.名字, "给馋哭了.")
结束
返回 大熊
有文件如:小熊.lua
局部 大熊 = 要求("大熊")
局部 小熊={}
函数 小熊:给( ... )
大熊:给(本身)
输出("熊爸给本身的",本身.熊爸)
输出("熊妈给本身的",本身.熊妈)
输出("熊爸给小熊的",小熊.熊爸)
输出("熊妈给小熊的",小熊.熊妈)
输出("熊爸给大熊的",大熊.熊爸)
输出("熊妈给大熊的",大熊.熊妈)
结束
小熊.熊爸 = "苹果"
输出("小熊得到的")
小熊:给()
返回 小熊
小熊只能作为大熊的给()函数里的参数. 即..., 即谁, 取谁的名字,即"小熊",然后:"小熊 给馋哭了."
执行后
小熊得到的
小熊 给馋哭了.
熊爸给本身的 苹果
熊妈给本身的 nil
熊爸给小熊的 苹果
熊妈给小熊的 nil
熊爸给大熊的 nil
熊妈给大熊的 蜂蜜
--大熊:给(本身)改成
大熊.给(本身)
本身的用法, 要通过:来指明, 比如, 小熊: 给()的执行, 就可以在给()执行期间, 用本身来代指小熊.
而第一次里, 大熊:给(), 执行时, 引用的大熊的给()函数时, 通过:号指明了对象就是大熊. 小熊只能作为大熊的给()函数里的参数.
而更改后, 大熊.给(小熊), 执行时, 引用的大熊的给()函数时, 因没有:指明对象, 就变成是()号内的对象, 即小熊. 即在大熊.lua里, 本身用来代指小熊了.所以蜂蜜就给到小熊了.
小熊得到的
nil 给馋哭了.
熊爸给本身的 苹果
熊妈给本身的 蜂蜜
熊爸给小熊的 苹果
熊妈给小熊的 蜂蜜
熊爸给大熊的 nil
熊妈给大熊的 nil
这时大熊的给()函数里,没有别的参数. 如需要别的参数, 可以写成, 大熊.给(小熊, 参数1)这样传递.
--大熊:给(本身)改成
大熊.给(本身,大熊)
执行后
小熊得到的
大熊 给馋哭了.
熊爸给本身的 苹果
熊妈给本身的 蜂蜜
熊爸给小熊的 苹果
熊妈给小熊的 蜂蜜
熊爸给大熊的 nil
熊妈给大熊的 nil