Lua 方法重载

作者个人网站:http://www.harddone.com

最近在更新一个Lua项目中,很多地方调用了同一个方法,想在不改动调用逻辑的情况下,如何不执行原来的方法逻辑,而执行新的方法逻辑呢?
我们可以直接重载该方法,但是前提是必须在第一次调用该方法前就完成了重载。

请注意这种方式的前提:一定是要在该方法第一次被调用前完成你的重载,否则无效。

举例说明: ads_plugin_manager是一个全局对象,在其类文件中已经实现了方法showBanner的逻辑,项目中许多直接调用ads_plugin_manager:showBanner()。现在我想不改动任何调用该方法地方的代码。怎么操作?

  • 创建lua文件:OverrideAdsPluginManager.lua
ads_lua_manager.showBanner = function(...)
--override start
-- 请注意,如果方法实现需要访问类的其他方法或者变量,都可以通过ads_lua_manager.xxx的方式直接调用
-- override end
end
  • 尽早引用OverrideAdsPluginManager.lua
require "libii/common/OverrideShowBanner"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容