Lua和对象生成

我的直觉告诉我我犯了一个显而易见的错误,但是我没有意识到。我试图通过以下示例代码从指定的“父”对象创建“子”对象。

将代码翻译成中文只显示翻译内容,保留原本的 markdown 格式

因此,这正是失败的文字,尝试调用方法Initialize,它是nil值。鉴于在此编辑之前我的示例代码确实可行,这是否是表Ad已被定义的问题?还是我在这里有语法错误?

点赞
用户12421
用户12421

问题是这样的:

local Ad = {
    __index = Ad,
    ...
}

__index被赋值的时候,Adnil的,因为表是在被赋值给Ad之前被完整构建的。由于__index未设置,因此查找Initialize失败。

因此,应该这样做:

local Ad = {
    ...
}
Ad.__index = Ad
2013-03-02 01:12:51