Как объявить ClassName.FunctionName.myFunction () в JavaScript? - PullRequest
0 голосов
/ 30 января 2019

Итак, я пытаюсь получить доступ к двум функциям внутри функции в классе. modal_1 () , как показано ниже в коде. console.log ("inside 1st"); работает нормально, но когда я пытаюсь пойти дальше (например, modal_1.show_modal_1 ();), выдает следующее сообщение об ошибке:

ERROR MESSAGE

Класс модалов:

const Modals = class {
   modal_1(){
        console.log("inside 1st");

        var hide_modal_1 = function () { 
            console.log("hide modal 1");
            //document.getElementById("modal_setup3DScene").style.display = "none"; 
        };
        var show_modal_1 = function() {
            console.log("show modal 1");
            //document.getElementById("modal_1-content").style.display = "block"; 
        };
    }
};

То, что я использую для вызова класса модалов:

let modals_List;
function setup() {
    modals_List = new Modals();
    modals_List.modal_1().show_modal_1();
}

1 Ответ

0 голосов
/ 30 января 2019

Вы явно не возвращаете что-то внутри функции modal_1, поэтому возвращаемое значение будет undefined.Затем вы пытаетесь позвонить show_modal_1() на undefined.Поскольку это свойство не существует в нем, вы получаете эту ошибку.

Вы можете решить ее, возвращая функции следующим образом:

const Modals = class {
   modal_1() {
        console.log("inside 1st");
        return {
            hide_modal_1: functio () { 
                console.log("hide modal 1");
            },
            show_modal_1: function() {
                console.log("show modal 1");
            }
        }
    }
};
...