Почему JSON.stringify не сериализует значения прототипа?
Я недавно работал с большим количеством разборов JSON и передачей Javascript в Node.js и браузерах и столкнулся с этой загадкой.
Любые объекты, которые я создал с помощью конструктора, не могут быть полностью полностью сериализованы через 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);
Что просходит:
a_string == {"initialisedValue ":"Ты можешь видеть меня!" }
Я бы ожидал:
a_string == {"initialisedValue ":"Ты можешь видеть меня!", "uninitialisedValue ":"Вы можете'не вижу меня! "}