JavaScript. Подробное руководство, 6-е издание, стр. 74
<b>// Создать нерасширяемый объект с ненастраиваемыми свойствами, с жестко </b><b>// зафиксированным прототипом и свойством, недоступным для перечисления </b><b>var о = Object.seal(Object.create(Object.freeze({x:1}),</b><b> {у: {value: 2, writable: true}})):</b>6.9. Сериализация объектов
Сериализация объектов - это процесс преобразования объектов в строковую форму представления, которая позднее может использоваться для их восстановления. Для сериализации и восстановления объектов JavaScript стандартом ЕСМА-Script 5 предоставляются встроенные функции
<b>JSON.stringify()</b><b>JSON.parse()</b><b>о = {х:1, у:{z:[false.null,""]}}: // Определить испытательный объект </b><b>s = JSON.stringify(o); // s == '{"х":1,"у":{"z":[false,null,'"]}}'</b><b>p = JSON.parse(s); // P - глубокая копия объекта о</b>Базовые реализации этих функций в ECMAScript 5 очень точно повторяют общедоступные реализации в ECMAScript 3, доступные в http://json.org/json2.js. С практической точки зрения это совершенно одинаковые реализации, и эти функции стандарта ECMAScript 5 можно использовать в ECMAScript 3, подключив указанный выше модуль json2.js.
Синтаксис формата JSON является лишь подмножеством синтаксиса языка JavaScript и не может использоваться для представления всех возможных значений, допустимых в JavaScript. Поддерживаются и могут быть сериализованы и восстановлены: объекты, массивы, строки, конечные числовые значения,
<b>true</b><b>false</b><b>null</b><b>NaN, Infinity</b><b>-Infinity</b><b>null</b><b>Date</b><b>Date.toJSON()</b><b>JSON.parse()</b><b>Date</b><b>Function, RegExp</b><b>Error</b><b>undefined</b><b>JSON.stringify()</b><b>JSON.stringify()</b><b>JSON.parse()</b>6.10. Методы класса Object
Как описывалось выше, все объекты в языке JavaScript (за исключением тех, что явно созданы без прототипа) наследуют свойства от Object.prototype. Эти наследуемые свойства являются первичными методами и представляют особый интерес для программистов на JavaScript, потому что доступны повсеместно. Мы уже познакомились с методами
<b>hasOwnProperty()</b><b>propertylsEnumerable()</b><b>isPrototy-peOf()</b><b>Object</b><b>Object.create()</b><b>Object.getPrototypeOf()</b><b>Object.prototype</b>6.10.1. Метод toString()
Метод toString() не требует аргументов; он возвращает строку, каким-либо образом представляющую значение объекта, для которого он вызывается. Интерпретатор JavaScript вызывает этот метод объекта во всех тех случаях, когда ему требуется преобразовать объект в строку. Например, это происходит, когда используется оператор
<b>+</b>Метод
<b>toString()</b><b>var s = { x:1, у:1 }.toString( );</b>Этот метод по умолчанию не отображает особенно полезной информации, поэтому многие классы определяют собственные версии метода
<b>toString().</b><b>toString()</b><b>Array.toString(), Date.toString()</b><b>Function.toString()</b>В разделе 9.6.3 описывается, как можно переопределить метод
<b>toString()</b>6.10.2. Метод toLocaleString()
В дополнение к методу
<b>toString()</b><b>toLocaleString().</b><b>toLocaleString()</b><b>Object</b><b>toString()</b><b>Date</b><b>Number</b><b>toLocaleString()</b><b>Array</b><b>toLocaleString()</b><b>toString()</b><b>toLocaleString()</b><b>toString()</b>