Lua类:在运行其中一个方法时,如何访问对象?

我在课堂上使用了这个代码: http://pastebin.com/DHVXsH37

以下是我的代码:

require 'class'
-- 一般的节点类和函数
Node = class(function(node, ID, x, y)
   node.nodetype = 'neutral';
   node.id = ID;
   node.x = x;
   node.y = y;
   node.fname = 'exnode.png'
end)

function Node:display()
    print( self.fname )
    local img = display.newImage( self.fname, self.x, self.y );
    img:addEventListener( "tap", self.onTap )
end

当我运行初始化实例的 display 函数时,会出现一个错误,提示 self 没有被定义。我应该如何获取对象的属性?

点赞
用户1442917
用户1442917

正如 Etan 在评论中所说,确保您将方法称为 object:method() 而不是 object.method(),因为在第一种情况下 self 值设置为 object,而在第二种情况下它未设置为任何值(因此具有 nil 值)。object:method(...) 符号是 object.method(object, ...) 的语法糖。

2014-01-22 00:35:41