Вы читаете английскую версию этой статьи, так как пока нет перевода на данный язык. Помогите нам перевести эту статью!
Далее приведён список изменений в 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()больше не допускает использование конечных запятых.