Vorrei aggiungere coppie di valori-chiave di metadati a oggetti JavaScript arbitrari. Questi metadati non dovrebbe influenzare il codice che non è a conoscenza dei metadati, che significa, ad esempioC'è un modo per aggiungere meta-dati agli oggetti JavaScript?
JSON.stringify(obj) === JSON.stringify(obj.WithMetaData('key', 'value'))
metadati codice a conoscenza dovrebbe essere in grado di recuperare i dati con chiave, vale a dire
obj.WithMetaData('key', 'value').GetMetaData('key') === 'value'
non v'è alcun modo per farlo - in node.js? In tal caso, funziona con tipi predefiniti come String
e anche
? (Modifica Pensandoci, non mi interessa il numero reale numeri primitivi, ma avere quello per le istanze stringa sarebbe bello).Number
Alcuni Background: Quello che sto cercando di fare è di cache valori che sono derivati da un oggetto con l'oggetto stesso, in modo che
- per i meta dati del codice ignari, i metadati oggetto arricchito guarderà la stessa come l'oggetto originale w/o meta codice
- che ha bisogno di valori derivati possono ottenere fuori dei meta-dati se già memorizzati nella cache
- cache otterrà garbage collection a fianco l'oggetto
Un altro modo sarebbe di memorizzare una tabella hash con le cache da qualche parte, ma non si saprebbe mai quando l'oggetto viene raccolto. Ogni istanza di oggetto dovrebbe essere gestita manualmente, in modo che le cache non perdano.
(btw clojure ha questa caratteristica: http://clojure.org/metadata)
Questa suoni mi piace la funzionalità 'jQuery.data()' per me –