Возможно ли смоделировать Object.getOwnPropertyNames в IE8 - PullRequest
4 голосов
/ 23 ноября 2011

Возможно ли имитировать Object.getOwnPropertyNames в IE8?

Я пытаюсь заставить скрипку работать в IE8.

Я полагаю, что осталось только создать функцию, имитирующую getOwnPropertyNames.

Конечно, другие решения базовой проблемы расширения объекта JavaScript с помощью литералов объекта в IE8 очень ценятся.

Обновлено : Работает fiddle , в котором используется внешний файл сценария shim es5.

Заключение : Нет, но вы можете использовать shim Object.ключи

1 Ответ

9 голосов
/ 23 ноября 2011

Нет.

Object.getOwnPropertyNames() возвращает оба перечислимых и не перечисляемых собственных свойства объекта.Невозможно перебрать неперечислимые свойства в реализациях ECMAScript 3rd Edition, поэтому вы можете получить только перечислимые.

Довольно просто написать процедуру, возвращающую перечисляемые собственные свойства:

var arr = [];
for (var k in obj) {
    if (obj.hasOwnProperty(k)) 
        arr.push(k); 
}

Это (более или менее) эквивалент Object.keys().Однако, если этого недостаточно, вам не повезло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...