Доброго времени суток.
Есть конструктор. Нужно, чтобы экземпляр от него возвращал инкремент.
Как это можно и лучше реализовать?
'use strict'
function Count() {
// Здесь правильный код
}
var newCount = new Count();
alert(newCount); // 1
alert(newCount); // 2
alert(newCount + newCount); // 7
Ответ
Конструктор не может возвращать примитивные типы. Поэтому формально ответ на вопрос: никак.
Но можно воспользоваться возможностью определения для объектов функций toString и valueOf, которые вызываются автоматически при приведениях к различным типам, например:
function Count() {
var val = 0;
this.valueOf = this.toString = function() {
return ++val;
};
}
var newCount = new Count();
document.write(newCount); // 1
document.write(newCount); // 2
document.write(newCount + newCount); // 7
Комментариев нет:
Отправить комментарий