не делает свойства объекта доступными только для чтения; используйте для этого функцию
Object.freeze.
Отметьте также, что
Object.seal
не воздействует на унаследованные свойства. Если в цепочке прототипов объекта, обработанного функцией
Object.seal,
имеется расширяемый и настраиваемый объект, тогда имеется возможность добавлять и удалять наследуемые им свойства.
Обратите внимание, что эта функция вызывается не как метод объекта: это глобальная функция,
которая принимает объект в виде аргумента.
См. также
Object.defineProperty, Object.freeze, Object.isSealed, Object.preventExtensions, раздел 6.8.3
Object.toLocaleString
возвращает локализованное строковое представление объекта
Синтаксис
объект.toLocaleString
Возвращаемое значение
Строковое представление объекта.
Описание
Этот метод предназначен для получения строкового представления объекта, локализованного в соответствии с текущими региональными настройками. Метод
toLocaleString,
предоставляемый по умолчанию классом
Object
, просто вызывает метод
toString
и возвращает полученную от него нелокализованную строку. Однако обратите внимание, что другие классы, в том числе
Array
,
Date
и
Number
, определяют собственные версии этого метода для локализованного преобразования в строку. Вы также можете переопределить этот метод собственными классами.
относится к тем, которые обычно не вызываются явно в JavaScript-программах. Программист определяет этот метод в своих объектах, а система вызывает метод, когда требуется преобразовать объект в строку.
JavaScript вызывает метод
toString
для преобразования объекта в строку всякий раз, когда объект используется в строковом контексте. Например, если объект преобразуется в строку при передаче в функцию, требующую строкового аргумента:
alert(my_object);
Подобным же образом объекты преобразуются в строки, когда они конкатенируются со строками с помощью оператора +:
var msg = 'Мой объект: ' + my_object;
Метод
toString
вызывается без аргументов и должен возвращать строку. Чтобы от возвращаемой строки была какая-то польза, эта строка должна каким-либо образом базироваться на значении объекта, для которого был вызван метод.
Определяя в JavaScript специальный класс, целесообразно определить для него метод
toString.
Если этого не сделать, объект наследует метод toString, определенный по умолчанию в классе
Object
. Этот стандартный метод возвращает строку в формате:
[objectкласс]
где класс - это класс объекта: значение, такое как «Object», «String», «Number», «Function», «Window», «Document» и т.д. Такое поведение стандартного метода
toString
иногда бывает полезно для определения типа или класса неизвестного объекта. Однако большинство объектов имеют собственную версию
toString,
поэтому для произвольного объекта о необходимо явно вызывать метод
Object.toString,
как показано ниже:
Object.prototype.toString.apply(o);
Обратите внимание, что этот способ идентификации неизвестных объектов годится только для встроенных объектов. Если вы определяете собственный класс объектов, то класс для него будет соответствовать значению «Object». В этом случае дополнительную информацию об объекте позволит получить свойство
Object.constructor
. Метод
toString
может быть очень полезен при отладке JavaScript-программ - он позволяет выводить объекты и видеть их значения. По одной только этой причине есть смысл определять метод
toString
для каждого создаваемого вами класса.
Несмотря на то что метод
toString
обычно вызывается системой автоматически, бывают случаи, когда его требуется вызвать явно. Например, чтобы выполнить явное преобразование объекта в строку, если JavaScript не делает это автоматически:
у = Math.sqrt(x); // Вычислить число
ystr = у.toString; // Преобразовать его в строку
Относительно этого примера следует помнить, что числа имеют встроенный метод
toString,
обеспечивающий принудительное преобразование.
В других случаях вызов
toString
может оказаться полезным - даже в таком контексте, когда JavaScript выполняет преобразование автоматически. Явное использование метода