Проблема с объектами в JavaScript (TypeError: Cannot read property 'add' of undefined)

270
20 февраля 2018, 08:24

Функция:

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 даже не видна. в чем дело?

Answer 1

На данный момент, экспортируемая функция ничего не возвращает, так как в ней отсутствует оператор return.

В связи с этим при вызове var time = date('2017-05-16 13:45') в переменную time запишется значение undefined и все последующие попытки обращения к свойствам приведут к ошибке.

Для решения нужно вернуть что-то из этой функции.

Судя по предполагаемому использованию, возвращать нужно объект, который на данный момент сохраняется в переменную dt.

Далее, для решения основной задачи и организации fluent-интерфейса методы участвующие в цепочке вызовов должны возвращать тот же самый объект.

READ ALSO
Почему возникает ошибка типа “cannot read property style of null”?

Почему возникает ошибка типа “cannot read property style of null”?

Выдаёт ошибку типа "cannot read property style of null"Что пытаюсь сделать: после движения мышкой к курсору должно прилипнуть изображение (сначала прописал...

195
Определить состояние чекбокса

Определить состояние чекбокса

Есть кастомный чекбокс на сайте, по клику на который необходимо узнать активный он или нетПишу следующие:

248
Как сделать пересчёт в таблице? JQuery

Как сделать пересчёт в таблице? JQuery

Доброго времени сутокНиже код таблички по ссылке файлик (обычный текстовой), в файле табличка которая строится по виду Excel таблицы

180
Можно ли получить массив точек из svg path

Можно ли получить массив точек из svg path

Подскажите, можно ли получить массив точек из svg path?

164