我想向任意JavaScript对象添加元数据的键值对。该元数据应该不会影响代码,不知道元数据的,这意味着,例如有什么方法可以将元数据添加到JavaScript对象吗?
JSON.stringify(obj) === JSON.stringify(obj.WithMetaData('key', 'value'))
元数据感知代码应该能够通过键检索数据,即
obj.WithMetaData('key', 'value').GetMetaData('key') === 'value'
有什么办法做到这一点 - 在node.js?如果是这样,它是否适用于内置类型,如String
甚至
? (编辑想一想吧,我不在乎真的原始像数字,但有字符串实例会很好)。Number
一些背景:我试图做的是,从与对象本身的对象派生的缓存值,这样
- 到元数据不知道代码,元数据丰富对象将看原来一样的物体W/O需要导出的值可以把它弄出来的元数据,如果已经缓存
- 缓存会得到垃圾回收旁边的对象元
- 代码
另一种方法是将哈希表与某处的缓存进行存储,但是永远不会知道何时该对象被垃圾收集。每个对象实例都必须手工处理,以便缓存不会泄漏。
(顺便说一句的Clojure具有这样的特征:http://clojure.org/metadata)
这听起来就像'jQuery.data()'功能对我来说 – 2012-07-31 13:16:24