rubyでextend Mod
985 ワード
rubyではすべてのオブジェクトは言うまでもなく、オブジェクトのメソッドはオブジェクトのポインタklassによって他のクラスを指し、このオブジェクトのメソッドはこのクラスに定義されています.クラスがObjectのサブクラスである場合、このクラスのインスタンス化されたすべてのオブジェクトのメソッドはこのクラスに定義され、これらのオブジェクトのklassポインタもこのクラスを指します.rubyの1つのオブジェクトの角度から見ると、そのオブジェクトに1つのメソッド(彼自身にしかないメソッド)を定義すると、このオブジェクトは虚クラス-metaclassを作成するので、このオブジェクトに定義されたメソッドは、このオブジェクトのklassポインタが指すクラス(metaclass)に確立されます.本題に戻れextend Modはこのようにこのオブジェクトがモジュール内のインスタンスメソッドを持つようになり,上端ではオブジェクトのために独自のメソッドを構築することが虚クラスに置かれることが明らかになったので,拡張されたインスタンスメソッドがそのmetaclassに置かれた.OK、これといえばclass<