当前位置: 首页> 科技> IT业 > 衡阳网站优化方案_企业注册网上申请入口_如何创建自己的个人网站_西安百度网站快速排名

衡阳网站优化方案_企业注册网上申请入口_如何创建自己的个人网站_西安百度网站快速排名

时间:2025/8/9 2:18:45来源:https://blog.csdn.net/qq_22626987/article/details/143891541 浏览次数:0次
衡阳网站优化方案_企业注册网上申请入口_如何创建自己的个人网站_西安百度网站快速排名

以下代码来自Loxodon Framework,截取自其中的一段

function class(classname, super)local cls = {}cls.__classname = classnamecls.__class = clscls.base = function (self)return cls.superendcls.__type = 0cls.super = supercls.__index = clsif super thensetmetatable(cls,{__index = super, __call = function (t,...)local instance = setmetatable({},t)  instance:ctor(...)return instanceend})elsecls.ctor = function (...)endsetmetatable(cls,{__call = function (t,...)local instance = setmetatable({},t)instance:ctor(...)return instanceend})endif not cls.ctor thencls.ctor = function (...)   --构造函数endendreturn cls
end

调用方式

local t = {1,2,3}
t.age = 10local a = class("a",t)
print(a.age)  --输出10local b = a()   --调用了__call元方法,相当于是构造函数
print(b.age)  --输出10

当调用a.age时,a相当于cls,会从__index中寻找age,即super,也就是t中寻找
而当通过local b = a() 的方式调用时,会进入到__call元方法中,instance 会从cls继承,相当于把cls设置为了instance的元表,最终返回instance

关键字:衡阳网站优化方案_企业注册网上申请入口_如何创建自己的个人网站_西安百度网站快速排名

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: