在方法`new`中忽略命令

时间:2015-10-15 10:21:21

标签: ruby class

我正在尝试定义并调用函数new

module Me
  class Bobkat
    def new()
      puts "Kernel.caller()[0].to_s() is " << Kernel.caller()[0].to_s()
      initialize()
    end
    def initialize
      return self
    end
  end
end

Me::Bobkat.new()

忽略puts命令。我想知道它为什么这样做。有什么想法吗?

2 个答案:

答案 0 :(得分:6)

如果您的意思是“它忽略了puts命令”,那么// This doesn't work self.addEventListener('fetch', function (event) { event.request.then(function () { // do something here }); }); puts内部Me::Bobkat#new未执行,这是因为您从未调用过Me::Bobkat#new。如果您认为通过执行Me::Bobkat.new来调用它,那就错了。 Me::Bobkat#new(实例方法)和Me::Bobkat.new(类方法)不同。

答案 1 :(得分:0)

如果您仍想覆盖新方法,请执行以下操作:

module Me
  class Bobkat
    class << self
        def new(*args)
          puts "Kernel.caller()[0].to_s() is " << Kernel.caller()[0].to_s()
          super
        end
    end
  end
end

Me::Bobkat.new