Недавно просматривая вакансии от компании Яндекс, встретил следующую задачу:
Реализуйте конструктор 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. Да простят меня
Боги ребята которые придумывают эти задания, за то что я вынес их во всеобщее обсуждение.