2015-03-26 2 views
-2

Я удалил свой текст вопроса, так как он не обратился к реальной ошибке в моем коде. Два ответа полностью объясняют мою ошибку и почему я это сделал.JSON.stringify не работает должным образом на измененном объекте. Как справиться с этим?

+1

Эх, что вы ожидали? Это просто результат, который 'JSON.stringify' должен давать с этими аргументами. – Bergi

+1

Нет, это не имеет ничего общего с наследованием прототипов, как в вопросе, который вы связали. – Bergi

+1

_ «Какое обходное решение для использования?» _ Обходное решение для чего? Неясно, какого результата вы ожидаете. Не могли бы вы нам это рассказать? (т. е. покажите нам консольный вывод, который, как вы думаете, вы должны видеть). – JLRishe

ответ

1

Второй аргумент JSON.stringify применяется рекурсивно, а не только на верхнем уровне. Вы не видите свойство "a", потому что ваш массив basicObjectElements не содержит "a". Вы увидите это, если вы сделаете это:

var basicObjectElements = ["changedProperties", "a"]; 
+0

@ Джон: Ну и что? Заменители (включая фильтры имени имени-массива) должны применяться к каждому посещенному объекту, иначе они были бы бесполезны. Если вы хотите, чтобы поведение каждого объекта было характерным, используйте методы '.toJSON'. – Bergi