'''
function deserializeFunction(serializedFunction) { // 提取参数部分的字符串 const paramMatch = serializedFunction.match(/((.*?))/); let paramStr = ""; if (paramMatch && paramMatch.length > 1) { paramStr = paramMatch[1].trim(); } const paramNames = paramStr.split(',').map(p => p.trim()).filter(p => p);
// 提取函数体部分的字符串
const bodyMatch = serializedFunction.match(/\{([\s\S]*?)\}/);
let functionBody = "";
if (bodyMatch && bodyMatch.length > 1) {
functionBody = bodyMatch[1].trim();
}
// 使用 new Function 创建新函数
const newFunction = new Function(...paramNames, `return { ${functionBody} }`);
return function (...args) {
const result = newFunction(...args);
return result;
};
}
// 测试示例
const serializedFunction = function (a, b) { return a + b; };
const restoredFunction = deserializeFunction(serializedFunction);
const result = restoredFunction(3, 5);
console.log(result);
'''