我自己为一个对象定义了一个方法,我想要另一个对象也可以访问这个方法怎么弄呀?
... 这样... ?
O = Object.new
def O.foo
'foo'
end
K = Object.new
def K.foo
O.foo
end
一个对象,可以理解为类和实例对象,本身类也算是 Class 的一个实例对象。 单例方法,如果是类的单例方法,那就是类方法,你想在另一个类里调用这个类的类方法,可以这样。
class A
def self.test
puts "hello"
end
end
class B
def self.test
A.test
end
end
如果是实例对象。
module A
def test
"hello"
end
end
class B;end
class C;end
b = B.new
c = C.new
b.extend A
c.extend A
b.test
c.test
实例对象的单例方法,你无法在另一个对象中直接调用,因为在另一个对象中找不到那个方法,只会把它当实例变量去处理。