代码之家  ›  专栏  ›  技术社区  ›  JackTheKnife

两个webpack模块之间的重用功能

  •  0
  • JackTheKnife  · 技术社区  · 6 年前

    我试图重用现有WebPACK模块中的一个函数,而不是重新创建它。

    视图1的第一个模块的示例代码如下:

        SearchPopupView.prototype.highlightUser = function(item)
        {
            var self = this;
    
            self.selUser(item);
        }    
    

    然后在新模块中,对于视图2(与视图1相同的HTML模板),我尝试重用相同的函数:

     UserSearch = __webpack_require__(/*! View/Popup/UserSearch */ 17)
    
     SearchAccountPopupView.prototype.highlightAccount = function(item)
     {
        UserSearch.prototype.highlightUser(item);
     }
    

    它将从第一个模块执行函数,但将抛出一个错误

    self.selUser不是函数

    我的问题是,我可以重用在视图1元素上操作的任何函数,还是只重用那些只计算值的函数?

    1 回复  |  直到 6 年前
        1
  •  1
  •   acarlstein ironhide96    6 年前

    首先,我建议您研究一下:JavaScript:Class.method与Class.prototype.method

    JavaScript: Class.method vs. Class.prototype.method

    第二,您正在获取的UserSearch是否是一个对象(在获取之前使用关键字new定义的)?如果是的话,你就不需要使用原型了。你可以用

     UserSearch.highlightUser(item);
    

    如果它不是一个对象,则需要实例化它,或者需要更改类以使用静态方法。