Lua 中的函数是如何被嵌入到表中的?

我正在阅读《Lua编程》的16.4章节,并且在最后一个示例中有一件事情我不太理解:


function newAccount(initialBalance)
    local self = {
        balance = initialBalance,
        LIM = 10000.00,
    }

    local extra = function()
        if self.balance > self.LIM then
            return self.balance*0.10
        else
            return 0
        end
    end

    local getBalance = function()
        return self.balance + self.extra() --此行是有问题的
    end

    ...

为什么"extra"函数变成了"self.extra"函数?我没有看到任何与分离的"self"表相关的东西!

点赞
用户107090
用户107090

这个已经在第二版书中进行了更正:

local getBalance = function ()
  return self.balance + extra()
end
2012-08-31 21:41:25