被 Object#method 封装进对象之中的方法所组成的类。这个方法本身的内容(注意不是名称)和其被接受的对象被封装到对象中。和 Proc 不同,生成对象时的上下文是不会被保存的。
不同于 Proc: Method 必须要对应方法存在时才能创建,而 Proc 无需准备即可创建。有鉴于此,Proc 更适合一次性使用,而 Method 适合重复使用。此外,根据内含的代码量来看,Proc 适合小规模代码,而 Method 适合大规模代码。
class Foo def foo(arg) "foo called with arg #{arg}" end end m = Foo.new.method(:foo) p m # => #<Method: Foo#foo> p m.call(1) # => "foo called with arg 1"
启动封装于对象之中的方法,参数和区块都原封不动地传递给方法。。