向JavaScript对象添加元数据
Add metadata to JavaScript objects
是否可以将元数据添加到JavaScript对象(包括字符串,数字和函数)?也就是说,
double = function(a){ return a*2; };
addMetadata(double,{desc:"Returns the double of a number."});
getMetadata(double).desc;
如何实现addMetadata和getMetadata ?
对于对象,包括函数,实现get/setMetadata的最好方法是根本不实现它。
double = function(a){ return a*2; };
double.desc = "Returns the double of a number."
alert(double.desc);
对于"原始"字符串/数字,您可以使用字典方法,如另一个答案所建议的:
metaStorage = {}
setMetaData = function(obj, data) {
if(typeof obj == "object")
obj._metaData = data;
else
metaStorage[obj] = data;
}
getMetaData = function(obj) {
if(typeof obj == "object")
return obj._metaData;
else
return metaStorage[obj];
}
setMetaData(1, "this is one");
console.log(getMetaData(1))
setMetaData(window, "my window");
console.log(getMetaData(window))
然而,我无法想象将元数据附加到字符串/数字字面量上会有什么用。
你可以这样做:
var metaDataStorer = {};
function addMetadata(object, meta) {
metaDataStorer[object] = meta;
}
function getMetadata(object) {
return metaDataStorer[object];
}
相关文章:
- javascript函数将数据添加到屏幕,但随后被另一个函数覆盖
- 将嵌套对象数据添加到窗体中
- 挖空.js - 向服务器端发送的数据添加属性
- 访问Twilio短信元数据
- 如何将数据添加到json的子节点
- Firebase-返回用户uid并将用户元数据值设置为不同的节点
- Chart.js2.X中的条形值-数据集元数据未定义
- E4X中是否有一种方法可以将基元数据类型的XMLList转换为类似于Array.join()的Array
- 无法将 json 数据添加到 pyjade 中的数据属性
- 通过变量将数据添加到图形中
- 如何将元标记添加到最顶部的iFrame
- 获取javascript中的元数据属性
- chart.js v2:如何添加元数据的工具提示
- 如何从服务器JSON向jsTree添加元数据并检索元数据
- 是添加自定义属性使用jquery元数据插件跨浏览器
- 如何在不使用EF的情况下向实体添加上下文元数据?
- 如何在select_node事件上为jtree添加元数据
- Cycle2 -向图像标签添加元数据
- 向JavaScript对象添加元数据
- 为什么queryAsync()会导致添加元数据