在完成元编程 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,那么它存储在哪里?