Rubyのメタプログラミングの「オブジェクトモデル」の章を終えた後、私は混乱しました。オブジェクト(あるクラスのインスタンス)のメソッドは、Rubyのそのクラスのインスタンスメソッドと同じですか?それは本当のように聞こえます。そのクラスに格納されているオブジェクトのメソッドがわかっているからです。
class W;end
W.methods == Class.instance_methods # => true
# Also
String.instance_methods == "abc".methods # => true
WのインスタンスですClass。しかし、私が再び開いWて新しいメソッドを定義すると、混乱するよりも。
class W
def self.foo
"bar"
end
end
W.methods == Class.instance_methods # => false
WはのインスタンスでありClass、WのメソッドはClassのインスタンスメソッドです。:fooしかし、に保存されなかった場合Class、どこに保存されますか?