Почему 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 == {& quot; initialisedValue & quot; : "Ты меня видишь!" }

Я бы ожидал:

a_string == {& quot; initialisedValue & quot; : "Вы можете видеть меня!", "uninitialisedValue" "Вы меня не видите!" }

Ответы на вопрос(3)

Ваш ответ на вопрос