Функция:
module.exports = function (date) {
td = new Date(date);
console.log(td.toLocaleString());
var dt = {
today: td,
add: function add() {
return this.today;
},
subtract: function subtract() {
return this.today;
},
};
};
Использование функции:
var time = date('2017-05-16 13:45')
.add(24,'hours')
.subtract(1, 'months')
.add(3, 'days')
.add(15, 'minutes');
assert.deepEqual(
time.value,
'2017-04-20 14:00'
);
В результате выходит это:
C:\Users\inikulin\Desktop\JS\неделя3\checks.js:8
.add(24,'hours')
^
TypeError: Cannot read property 'add' of undefined
Я понимаю,что программа недобита, но все же функция add даже не видна. в чем дело?
На данный момент, экспортируемая функция ничего не возвращает, так как в ней отсутствует оператор return.
В связи с этим при вызове var time = date('2017-05-16 13:45') в переменную time запишется значение undefined и все последующие попытки обращения к свойствам приведут к ошибке.
Для решения нужно вернуть что-то из этой функции.
Судя по предполагаемому использованию, возвращать нужно объект, который на данный момент сохраняется в переменную dt.
Далее, для решения основной задачи и организации fluent-интерфейса методы участвующие в цепочке вызовов должны возвращать тот же самый объект.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости