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"
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容