From: Adam Prescott Date: 2013-03-15T02:55:12+09:00 Subject: Re: confusion with singleton method call foo.class.instance_method(:talk) is specifically the method that returns "huanng" (you need to pick less ambiguous choices of output) class Foo def talk p "talk" end end >> Foo.instance_method(:talk) => # If you bind it to an object, it is no longer unbound: >> Foo.instance_method(:talk).bind(Foo.new) => # You're calling this Method instance, using the state in your instance of Foo. This is different from sending message to an instance of Foo (with foo.talk) and letting it do a method look-up. In the latter case, it sees the singleton method as part of the look-up.