Javascript 函数未使用“序列化”;连载;nodejs模块
普通JSON对我来说很好,就像 {id:1,“name”=“test”} 已正确序列化,但JSON对象中的定义函数未正确序列化 下面是代码Javascript 函数未使用“序列化”;连载;nodejs模块,javascript,json,node.js,serialization,Javascript,Json,Node.js,Serialization,普通JSON对我来说很好,就像 {id:1,“name”=“test”} 已正确序列化,但JSON对象中的定义函数未正确序列化 下面是代码 var s=require(“serialijse”) var o={“b”:函数(){alert('hello world');} var str=s.serialize(o); console.log(str)不能使用serialijse序列化函数。见文件: serialijse是一个简单的JavaScript持久性框架,它克服了JSON持久性的两个主
var s=require(“serialijse”)
var o={“b”:函数(){alert('hello world');}
var str=s.serialize(o);
console.log(str)代码>不能使用serialijse
序列化函数。见文件:
serialijse是一个简单的JavaScript持久性框架,它克服了JSON持久性的两个主要限制:
serialijse可以很好地处理循环对象
serialijse在反序列化时保留对象类
它没有说它可以序列化函数
简单的测试如下:
serialijse.serialize(()=>{});
或:
可以证明它不是。在JavaScript中序列化函数甚至没有多大意义,因为函数会创建词法闭包,并且您无法访问与原始函数相同的词法作用域。例如,考虑这个:
let x;
// some more code
let f = a => x += a;
您将如何序列化该函数?还是一个更大的问题-您将如何反序列化它?谢谢您提供的信息。它正在序列化日期函数,那么为什么不序列化自己的函数呢?与此类似,var s=require(“serialijse”)var o={“b”:Date()},序列化形式为:[[{“c”:“Object”,“d”:{“b”:“Mon-Mar 13 2017 16:04:52 GMT+0530(IST)”}],{“o”:0}]
let x;
// some more code
let f = a => x += a;