分别找到这2句代码:
复制代码
- cc(self):addComponent("components.behavior.EventProtocol"):exportMethods()
- cc.GameObject.extend(self):addComponent("components.behavior.EventProtocol"):exportMethods()
|
所以 cc(self) 就等于调用 cc.GameObject.extend(self) 。
----------------------------------------------------------------------------
原因是因为再 framework/cc/init.lua 中有这样一段定义:
复制代码
- cc.GameObject = import(".GameObject")
- local GameObject = cc.GameObject
- local ccmt = {}
- ccmt.__call = function(self, target)
- if target then
- return GameObject.extend(target)
- end
- printError("cc() - invalid target")
- end
- setmetatable(cc, ccmt)
|
这段代码定义了 cc() 的执行行为,也就是 __call 的调用效果。
Ps:如果不知道 __call 什么意思的可以看一下这里的解释
[lua] __call metamethod的用处