Практика: Функция конструктор и геттер.
Недавно просматривая вакансии от компании Яндекс, встретил следующую задачу:
Реализуйте конструктор RandomNumber, экземпляры которого при каждом обращении будут возвращать случайное число от 0 до 100. Пример: var random = new RandomNumber(); alert(random); // 46 alert(random); // 87 alert('First value: ' + random + ', second value: ' + random); // First value: 64, second value: 5 Первое что пришло в голову это использовать Геттеры при создании объекта: var o = { get random () { return Math.round( Math.random() * 100 ) } }; alert( o.random ); alert( o.random ); alert( 'First value: ' + o.random + ', second value: ' + o.random ); Как видно это решение не совсем соответствует требованию задачи. Но как сделать чтоб функция конструктор возвращала непосредственно Геттер? Возможно что я изначально не правильно подошел к решению этой задачи. P.S. Да простят меня |
Цитата:
во-вторых: toString() в-третьих: valueOf() function Foo() {} Foo.prototype.valueOf = Foo.prototype.toString = function() { return Math.random(); }; var obj = new Foo(); var x = obj; alert( obj ); alert( x ); |
Все ясно, спасибо.
|
Часовой пояс GMT +3, время: 14:36. |