比如:v = 'abc' v 这个字符串,就是 v 这个对象的字面值;而’abc‘则是变量 v 的值。二者不同。 我想要得到的是 v 这个变量的字面值。 比如有一个方法 m(v),传递参数是 v,那么 m(v) 就返回 v。那么这个 m 方法怎么定义呢? 或者说在某个对象上调用 m2() 方法,代码像这样:v.m2(),这句代码就返回 v; 如果在 f 这个变量上调用 m2() 方法,代码像这样:f.m2(),这句代码就返回 f. 我要请教的是,这个 m2() 方法怎么实现? 多谢! ---------重新说明---------------- 其实就是给 object 对象添加一个方法,比如叫做 literal();效果就是:在哪个变量上调用这个方法,就返回哪个变量的字面量。 代码如下: lass Object def literal #这里代码怎么写? end end
效果如下: a = 'abc' a.literal = 'a' #在对象 a 上来调用 literal 方法,就返回对象 a 的字面量,也就是字符串’a' 'abc'.literal = 'abc' #在对象‘abc'上来调用 literal 方法,就返回对象’abc‘的字面量,也就是字面量’abc' b = a b.literal = 'b' #b 对象虽然也指向字符串‘abc',但是以 b 对象来调用 literal 方法,所以返回 b 对象的字面量,即字符串’b' c = a.clone c.literal = 'c' #对象 c 的值虽然也是字符串‘abc',但是以 c 对象来调用 literal 方法,所以返回 c 对象的字面量,即字符串’c'