有很多文章来讲这个ruby rails中最重要最频繁使用的方法。
详细的理解,还需要去仔细理解ruby中的对象模型等。
略。
时间一长,就会忘记的,或者得回忆一下了,尤其是去写一段时间别的语言例如java python,再回来的时候,发现,哦,忘记了~需要再想想对象模型,恩,理解了。
很麻烦,对不对,何不让大脑休息一下~找个简记方法吧:
*1 C.class_eval "eval_str" 等价于在C中放入eval_str这段代码;
class_eval只有类对象(Class Object)才能执行,普通对象没有这个方法
*2 obj.instance_eval "eval_str" 等价于class << obj eval_str end,也就是在obj的单例类中放入eval_str这段代码
同时还能访问obj的实例变量!
instance_eval对任意实例都可以运行
原理简记:
*1 The Module class defines a method named class_eval . (module_eval is a synonym for class_eval .)
Class < Module < Object
*2 The Object class defines a method named instance_eval. ruby中都是对象,所以都可以运行哈。
====本文结束====
--------本文结束--------
..........本文结束..........