【发布时间】:2012-07-03 17:00:30
【问题描述】:
我最近发现在 Ruby 中动态创建对象和方法是一项相当艰巨的工作,这可能是因为我在 Javascript 方面的背景经验。
在 Javascript 中,您可以动态创建对象,其方法如下:
function somewhere_inside_my_code() {
foo = {};
foo.bar = function() { /** do something **/ };
};
如何在 Ruby 中完成上述语句(就像在 Javascript 中一样简单)?
【问题讨论】:
-
在编写 Ruby 时,您可能不应该尝试移植您的 JS 方法。语言有完全不同的对象模型,会有范式不匹配。
-
没错,谢谢提醒。我只需要一个只在我的应用程序中的单个操作中使用的小型丢弃对象,也许主要原因是我不想以程序方式执行它,它相当笨重。 :D
-
那你应该看看OpenStruct。
-
@michael 是的,我也在考虑这一点,在 Javascript 中添加属性似乎很容易。