将方法添加到 JSON 已解析的对象
Add method to JSON parsed object
我有一个对象本地存储在我的用户 PC 上,用 JSON 字符串化。我注意到当我解析它时,方法消失了。使用方法扩充对象的最有效方法是什么?
编辑:
示例:
var data = {
user: {
username: "Adam"
}
//function goes here
}
var myFunction = function(){/* code here*/}
您可以将函数分配给对象的 属性:
var data = {
user: {
username: "Adam"
}
//function goes here
}
var myFunction = function(){/* code here*/}
data.myFunction = myFunction;
根据我对你问题的了解,你可以按照下面的方式进行。
var data = {
user: {
username: "Adam"
},
functionName : "myFunction"
}
var myFunction = function(){ alert("a"); }
var stringyJson = JSON.stringify(data);
var parsedJson = JSON.parse(stringyJson);
window[parsedJson.functionName]();
如果您想将参数传递给函数,请将参数添加到 json 并使用 window[parsedJson.functionName](arg1, arg2);
我有一个对象本地存储在我的用户 PC 上,用 JSON 字符串化。我注意到当我解析它时,方法消失了。使用方法扩充对象的最有效方法是什么?
编辑: 示例:
var data = {
user: {
username: "Adam"
}
//function goes here
}
var myFunction = function(){/* code here*/}
您可以将函数分配给对象的 属性:
var data = {
user: {
username: "Adam"
}
//function goes here
}
var myFunction = function(){/* code here*/}
data.myFunction = myFunction;
根据我对你问题的了解,你可以按照下面的方式进行。
var data = {
user: {
username: "Adam"
},
functionName : "myFunction"
}
var myFunction = function(){ alert("a"); }
var stringyJson = JSON.stringify(data);
var parsedJson = JSON.parse(stringyJson);
window[parsedJson.functionName]();
如果您想将参数传递给函数,请将参数添加到 json 并使用 window[parsedJson.functionName](arg1, arg2);