javascript - 如何从javascript函数调用对象方法

标签 javascript jquery oop

var ssOffCanvas = function() {
           var menuTrigger = $('#header-menu-trigger'),
           nav             = $('#menu-nav-wrap'),
           closeButton     = nav.find('.close-button'),
           siteBody        = $('body'),
           mainContents    = $('section, footer');

        // open-close menu by clicking on the menu icon
        menuTrigger.on('click', function(e){
            e.preventDefault();
            menuTrigger.toggleClass('is-clicked');
            siteBody.toggleClass('menu-is-open');
        });
   };

proj_request_menu.onclick = function() {
    modal.style.display = "block";
};

在 proj_request_menu 函数中调用 ssOffCanvas 对象 menuTrigger 最合适的方式是什么。我知道要在对象内处理这个问题。 例如:menuTrigger.trigger('click'); 需要你的帮助...

最佳答案

首先,您必须修改对象定义,以便可以从外部访问您的变量。现在,当您使用 var 关键字(或 constlet)在对象内部创建变量时,它被视为私有(private)属性,只能在该对象内部使用。因此,您必须使用关键字 this 将其设为特权对象(可以从外部访问对象的特权属性),如下所示:

var ssOffCanvas = function(){
    this.menuTrigger = $('#header-menu-trigger');
    ...
};

请注意 this.menuTrigger 中的 this 关键字。

要首先获取对象的属性,您必须实例化它:

let myCanvas = new ssOffCanvas();

然后您将能够获得该属性:

myCanvas.menuTrigger; // returns $('#header-menu-trigger') value

对其他属性执行相同的操作。让我知道它是否有效。

关于javascript - 如何从javascript函数调用对象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44344040/

相关文章:

Javascript代码以相反的顺序执行?

C++ STL容器插入拷贝

php - PDO - 查询不返回结果

javascript - HTML5 与 Javascript 有什么区别

javascript - Redux 状态在我访问它时没有更新

JavaScript 通过滚动添加一次类

javascript - 如何在类内部调用类的方法

javascript - 尝试在 OL map 上覆盖 geotiff 文件及其显示错误

javascript - 选择的值未显示在输入值中

javascript - 由 jquery.blur() 引起的 Inprog 操作已在进行中