Javascript 函数未使用“序列化”;连载;nodejs模块

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持久性的两个主

普通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持久性的两个主要限制:

  • 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;