lua 一个简单的继承/派生关系
2014-04-04 14:07
197 查看
a = { name = 'this is a'} function a:fun() print(self.name) end b = { name = 'this is b'} c = { name = 'this is c'} setmetatable(b,{__index = a}) -- 指定继承关系 setmetatable(c,{__index = b}) -- 指定继承关系 b:fun() -- 输出this is b c:fun() -- 输出this is c
由于指定了继承关系,当c,b调用fun在对象本身找不到这个函数时会向元表(在这里就是基类)找这个函数
而fun传递了一个self,说明name取的是调用者本身的name,
可以把c的name去掉试试,变成 c = {}
这时c:fun()调用的是b的name,输出this is b,原理和找fun函数一样
相关文章推荐
- lua 5.1参考手册
- [LeetCode] Evaluate Reverse Polish Notation
- lua错误总结
- lua中字符串匹配
- Lua string
- Lua模式匹配
- Lua中的pairs们(pairs,ipairs,gmatch)
- KopiLua and LuaInterface
- lua语言学习(2.0)(终章)
- lua开篇
- Lua 函数作为参数传递时的注意事项
- Lua闭包(closure)示例
- Lua 学习记事本
- 327 - Evaluating Simple C Expressions
- Wax 将Lua带人iPhone开发
- lua开发工具
- lua与c互调--lua调用c
- lua与c互调--c调用lua
- Lua5.1编程二:Lua高级特性
- 成为Lua高手之metatable