Rubyリファレンス: Home

instance_method (Module)

Edit   History

標準クラス・モジュール > Module > instance_method

mod.instance_method(name)

instance_methodメソッドは、クラスやモジュールが定義しているインスタンスメソッドを元にUnboundMethodオブジェクトを作成して返します。引数nameにはシンボルか文字列でメソッド名を指定します。

引数nameには、publicprotectedprivateのどのメソッドでも指定できます。

UnboundMethodオブジェクトが表すメソッドはレシーバを持っていないので、callで呼び出すことはできません。bindメソッドでオブジェクトと結び付け、Methodオブジェクトに変換すれば呼び出せます。

class Object
  def double
    self + self
  end
end
 
method = Object.instance_method(:double)
p method.bind("hello").call
p method.bind(2).call
"hellohello"
4

関連項目