Bdf*_*dfy 9 javascript node.js
例如我有课:
function Test() {
}
Test.prototype = {
'setTest' : function(test) {
this.test = test;
}
}
var test = new Test();
Test.setTest('test');
Run Code Online (Sandbox Code Playgroud)
我想在数据库中保存对象测试.如何将对象测试序列化为字符串?(方法,变量等)
小智 11
简单用json
JSON.stringify( test );
Run Code Online (Sandbox Code Playgroud)
在这种情况下,对于你问的问题,真的没有办法做你想做的事.您的请求的问题在于"序列化附加到对象的所有内容,包括函数".
序列化通常仅针对数据发生,因为可执行文件通常是机器绑定的,因为它们是基于某些特征针对给定机器编译的.现在,有理由说javascript函数只需要一个javascript解释器,因为javascript是一次性写入,无处不在.但是当人们编写序列化程序时,因为所有序列化程序的工作方式都相同,所以我们只为数据编写它们.在这种情况下,行业标准是JSON,它是一个仅限对象数据的序列化程序.
此时有三种解决方案可供您使用:
我知道3是1的子答案,所以你可以认为它只有两个有用的答案.
我知道这表面上适用于Chrome和IE9,所以它应该适用于大多数用户可能会使用它的地方:
var abc = function(thing) { return thing; }
abc.toString();
// gives "function(thing) { return thing; }" on the command line
Run Code Online (Sandbox Code Playgroud)
因此,您当然可以将方法序列化为字符串来代替实际方法,但是您需要创建一个重复的对象,以便捕获源对象上的每个元素(我认为,而不是替换它们).
希望这可以帮助您更多地思考问题,并且可能意识到您不需要序列化方法(没有人做过我所知道的,不合理的).