Тема: defineProperty
Показать сообщение отдельно
  #1 (permalink)  
Старый 02.06.2010, 22:21
Интересующийся
Отправить личное сообщение для qwoiejfoiej Посмотреть профиль Найти все сообщения от qwoiejfoiej
 
Регистрация: 02.06.2010
Сообщений: 21

defineProperty
Как заставить Object.defineProperty определить свойство, которое можно только увеличивать? Прикол в том, что при первой проверке в setter'e вылетает ошибка ReferenceError: num is not defined, а при попытке установить свойство по умолчанию "TypeError: Invalid property. A property cannot both have accessors and be writable or have a value"

var obj = {};
Object.defineProperty(obj, 'num', {
value: 0, //TypeError
get: function() {return num},
set: function(value) {num = (!num || num > value) ? value: num} //ReferenceError
});

Либо я туплю либо одно из двух...
Ответить с цитированием