【问题标题】:How to declare ClassName.FunctionName.myFunction() in JavaScript?如何在 JavaScript 中声明 ClassName.FunctionName.myFunction()?
【发布时间】:2019-01-30 20:45:11
【问题描述】:

所以,我正在尝试访问类中的函数中的两个函数。 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"; 
        };
    }
};

我用什么来称呼 Modals 类:

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

【问题讨论】:

  • 您的show_modal_1() 函数是modal_1() 方法的局部变量,在该方法之外将不可见。
  • 那么就没有办法访问了吗?仅通过在modal_1() 之外但在Class Modals 内部声明它

标签: javascript function class oop undefined


【解决方案1】:

您没有在函数modal_1 内显式返回某些内容,因此返回值将是undefined。然后您尝试在undefined 上致电show_modal_1()。因为它上面不存在该属性,所以您会收到此错误。

你可以通过返回函数来解决它,如下所示:

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

【讨论】:

    猜你喜欢
    • 2012-01-12
    • 1970-01-01
    • 2012-04-29
    • 2013-07-20
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    相关资源
    最近更新 更多