Что означает ошибка [Объект, Объект] JavaScript - PullRequest
0 голосов
/ 27 марта 2020

Я отлаживал свой код почти 2 часа, а также пытался решить его с помощью этого сайта Объект , но он работает. Кажется, есть проблема с моделью контроллера. Следующее отрывается от кода

    var budgetController = (function () {
    var number = 23;


})();

var UiController = (function () {
    // get the html  input (read the data )
    // you can return whather var by var or retuen one object that has all the HTML compenents 
    var DOMStrings = {
        inputType: '.add__type',
        inputDesc: '.add__description',
        inputValue: '.add__value',
        inputBtn: '.add__btn'
    };

    return {
        getInput: function () {
            return {
                type: document.querySelector(DOMStrings.inputType).value, // Will be either inc or exp
                description: document.querySelector(DOMStrings.inputDesc).value,
                value: document.querySelector(DOMStrings.inputValue).value
            };
        },
        getDOMStrings: function () {
            return DOMStrings;
        }
    };


})();


var Controller = (function (budgetCtr, UICtrl) {
    // Immediately Invoked Function Expression

    var DOM = UICtrl.getDOMStrings();
    var CtrAddItem = function () {
        // pass everthing to here 
        var output = UICtrl.getInput();
        console.info("Data  " + output);

    }
    document.querySelector('.add__btn').addEventListener('click', CtrAddItem);

    document.addEventListener('keypress', function (event) {

        if (event.keyCode === 13 || event.which === 13) {
            CtrAddItem();
        }
    });



})(budgetController, UiController);

[Объект, объект] появлялся всякий раз, когда я консольный журнал выводил на модели контроллера

1 Ответ

2 голосов
/ 27 марта 2020

Всякий раз, когда вы соединяете строку и объект, используя +, для объекта вызывается метод toString (который по умолчанию просто возвращает [object Object]). Вместо этого вы должны передать объект в качестве второго аргумента:

console.info("Data", output);

...