Lab: Object Composition - 05.Sum [Unexpected error: document is not defined]
Здравейте, имам проблем със следната задача от лекцията Object Composition, отнася се за 5-та задача, но ми дава грешка:
(Unexpected error: document is not defined), не можах да разбера къде е проблема изпробвах хиляди решения, мислех си, че проблема е, че не се зарежда DOM-a преди да select-не елементите чрез селекторите и се пробвах и със document.onload и с $(function(){...}), но не ми се получи, иначе ето и някои от кодовете, които съм ползвал:
function getModel() {
    let model = {
        init: (selector1, selector2, resultSelector) => {
            model.num1 = $(selector1);
            model.num2 = $(selector2);
            model.result = $(resultSelector);
        },
        add: () => {
            model.action((a, b) => a + b);
        },
        subtract: () => {
            model.action((a, b) => a - b);
        },
        action: (operation) => {
            let val1 = Number(model.val1.val());
            let val2 = Number(model.val2.val());
            model.result.val(operation(val1, val2));
        }
    };
    return model;
}
(function () {
    let num1, num2, result;
    function init(num1Sel, num2Sel, resultSel) {
        num1 = document.getElementById(num1Sel);
        num2 = document.getElementById(num2Sel);
        result = document.getElementById(resultSel);
    }
    function add() {
        action((a, b) => a + b);
    }
    function subtract() {
        action((a, b) => a - b);
    }
    function action(operation) {
        let val1 = Number(num1.value);
        let val2 = Number(num2.value);
        result.value = operation(val1, val2);
    }
    let model = {init, add, subtract};
    return model;
})();
function getModel() {
        let model = {
            num1,
            num2,
            result,
            init: (selector1, selector2, resultSelector) => {
                $(function () {
                    model.num1 = $(selector1);
                    model.num2 = $(selector2);
                    model.result = $(resultSelector);
                });
            },
            add: () => {
                model.action((a, b) => a + b);
            },
            subtract: () => {
                model.action((a, b) => a - b);
            },
            action: (operation) => {
                let val1 = Number(model.num1.val());
                let val2 = Number(model.num2.val());
                model.result.val(operation(val1, val2));
            }
        };
        return model;
    }