我最近发现,在Ruby中动态创建对象和方法是相当有用的,这可能是因为我在Javascript中的背景经验。如何在Javascript中动态创建对象及其方法?
在Javascript中你可以动态创建对象和它的方法如下:
function somewhere_inside_my_code() {
foo = {};
foo.bar = function() { /** do something **/ };
};
如何(在JavaScript一样简单)实现在红宝石上述表述的相同呢?
当你编程Ruby时,你可能不应该尝试移植你的JS方法。语言具有完全不同的对象模型,将会出现模式不匹配的情况。 –
这是正确的,谢谢提醒。我只需要在我的应用程序中使用一个简单的对象,这个对象只能在一个单独的动作中使用,也许主要的原因是我不想以程序化的方式来完成它,它很笨拙。 :D –
然后你应该看看[OpenStruct](http://ruby-doc.org/stdlib-1.9.3/libdoc/ostruct/rdoc/OpenStruct.html)。 –