使用JSON.stringify()时,json2.js似乎忽略了父对象的成员.例:
require('./json2.js');
function WorldObject(type) {
this.position = 4;
}
function Actor(val) {
this.someVal = 50;
}
Actor.prototype = new WorldObject();
var a = new Actor(2);
console.log(a.position);
console.log(JSON.stringify(a));
Run Code Online (Sandbox Code Playgroud)
输出是:
4
{"someVal":50}
Run Code Online (Sandbox Code Playgroud)
我希望这个输出:
4
{"position":0, "someVal":50}
Run Code Online (Sandbox Code Playgroud) 我一直在使用相当多的JSON解析并最近在Node.js和浏览器中传递Javascript并遇到了这个难题.
我使用构造函数创建的任何对象都无法通过JSON.stringify完全序列化,因此我单独初始化了构造函数中的所有值!这意味着我的原型在设计这些类时基本上没用.
有人可以解释为什么以下不像我预期的那样序列化吗?
var ClassA = function () { this.initialisedValue = "You can see me!" };
ClassA.prototype = { initialisedValue : "You can't see me!", uninitialisedValue : "You can't see me!" };
var a = new ClassA();
var a_string = JSON.stringify(a);
Run Code Online (Sandbox Code Playgroud)
怎么了:
a_string == {"initialisedValue":"你可以看到我!" }
我希望:
a_string == {"initialisedValue":"你可以看到我!","uninitialisedValue":"你看不到我!" }