Далее приведён список изменений в JavaScript 1.8.5. Эта версия была включена в Firefox 4.
Что нового в JavaScript 1.8.5
Новые функции
Функция | Описание |
---|---|
Object.create() |
Создаёт новый обЪект с указанным прототипом и свойствами. баг 492840 |
Object.defineProperty() |
Добавляет свойство с переданным дескриптором к объекту. |
Object.defineProperties() |
Добавляет свойства с переданными дескрипторами к объекту. |
Object.getOwnPropertyDescriptor() |
Возвращает дескриптор свойства переданного объекта. баг 505587 |
Object.keys() |
Возвращает массив всех перечисляемых свойств объекта. баг 307791 |
Object.getOwnPropertyNames() |
Возвращает массив всех перечисляемых и не перечисляемых свойств объекта. баг 518663 |
Object.preventExtensions() |
Предотвращает любые расширения объекта. баг 492849 |
Object.isExtensible() |
Определяет, разрешено ли расширение объекта. баг 492849 |
Object.seal() |
Запрещает остальному коду удаление свойств объекта баг 492845 |
Object.isSealed() |
Определяет, запрещено ли удаление свойств объекта. баг 492845 |
Object.freeze() |
Замораживает объект: остальной код не может удалять или изменять значения его свойств. баг 492844 |
Object.isFrozen() |
Определяет, был ли объект заморожен. баг 492844 |
Array.isArray() |
Проверяет, является ли переменная массивом. баг 510537 |
Date.prototype.toJSON() |
Возвращает строку в формате JSON для объекта Date . |
Function.prototype.bind() |
Метод bind() создаёт новую функцию, которая при вызове устанавливает в качестве контекста выполнения this предоставленное значение. В метод также передаётся набор аргументов, которые будут установлены перед переданными в привязанную функцию аргументами при её вызове.баг 429507 |
Новые возможности ECMAScript5
get
иset
операторы теперь позволяют идентификатору быть строкой или числом. баг 520696Function.apply()
может принимать в качестве списка аргументов не только настоящие массивы, но и подобные массивам объекты.- strict mode support
Array.toString()
теперь работает не только на массивах, возвращая либо результат вызоваjoin()
, если он доступен, либо вызоваtoString().
Другая работа по стандартизации
Различные нестандартизованные синтаксические конструкции задания геттеров/сеттеров были удалены; Определенный в ECMAScript 5 синтаксис изменениям не подвергся. Все они были несколько "эзотерическими" и довольно редко использовались на практике; если эти изменения Вас затронули, прочтите эту статью.
Новые объекты
Объект | Описание |
---|---|
Proxy |
Предлагает поддержку при создании Object и Function прокси, что позволяет использовать метапрограммирование на JavaScript. |
Функциональность, изменённая в JavaScript 1.8.5
- ISO 8601 поддерживается в
Date:
метод parse() объекта Date теперь допускает использование формата ISO 8601 для строкового представления даты. - Глобальные объекты стали доступны "только для чтения": глобальные объекты
NaN
,Infinity
, иundefined
теперь доступны только для чтения по спецификации ECMAScript 5. obj.__parent__
иobj.__count__
устарели. Больше информации, почему это произошло: SpiderMonkey change du jour: the special __parent__ property has been removed баг 551529 & баг 552560.JSON.parse()
больше не допускает использование конечных запятых.