首页 > 解决方案 > 如何在 JavaScript 中声明 ClassName.FunctionName.myFunction()?

问题描述

所以,我试图在一个类中访问函数中的两个函数。modal_1()如下代码所示。console.log( " inside 1st"); 工作正常,但是当我试图走得更远时(例如 modal_1.show_modal_1(); )它给了我以下错误消息:

错误信息

模态类:

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();
}

标签: javascriptfunctionclassoopundefined

解决方案


您没有在函数内部显式返回某些内容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");
            }
        }
    }
};

推荐阅读