自我指数成为争论

时间:2015-05-04 08:49:25

标签: object lua

鉴于此对象:

foo = { }

function foo:new( p1, p2 )
  local object = {}
  setmetatable( object, self )
  self.__index = self
  object .p1 = p1
  object .p2 = p2
  return object
end

function foo:bar( boolbar )
  self.p1 = not boolbar
  print( self.p1 )
end

现在我得到另一个对象,它通过使用对foo的引用调用foos函数(foo不能直接访问)并将参数传递给它。不知怎的,自我成了争论。

reference_to_foo = foo 

function the_other_object:some_func()
  -- does some stuff
  reference_to_foo:bar( true )
end

调用foo:bar()效果很好,但是对于reference_to_foo,索引self成为参数(在本例中为boolean)。

在:bar()中,我会收到此错误:

  

尝试索引本地'self'(布尔值)

为什么会这样,我该如何解决?

0 个答案:

没有答案