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
、どこに保存されますか?