Показать сообщение отдельно
  #55 (permalink)  
Старый 12.04.2014, 12:51
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от devote
Твой вариант не будет работать если я сделаю так:
var o = Object.create({}, {});
o[0] = null;
o.hasOwnProperty(0); // false
да точно

defineProperties только enumerable свойства берет из объекта с дескрипторами

devote, твой вариант не работает, если сделать так:
var desc = Object.create({}, {"0": {}});

var obj = Object.create({}, desc);
obj[1] = 1;

console.log(obj.hasOwnProperty(1));
а если вместо getOwnPropertyNames будем использовать keys, можем случайно удалить non-enumerable свойство. Вряд ли конечно кто-то так будет делать, но хочется 100% вариант)

-----------
наверное лучше getOwnPropertyDescriptor использользовать

Последний раз редактировалось Octane, 12.04.2014 в 14:28.
Ответить с цитированием