如何在 self class 中使用 subclass 函数

How to use subclass function in self class

我正在使用 polymer 2 并且正在使用 mixin 来实现行为。在我的行为子class中,我无法使用相同子class的方法。我怎样才能做到这一点? 这是我的代码:

const Generic = (subclass) => class extends subclass
{
constructor ()
{
  super();
}

_arrayIntersect (a, b)
{
let bigArray = a.length > b.length ? a : b, common = [];

bigArray.forEach(function (elm) {

  if(a.indexOf(elm) !== -1 && b.indexOf(elm) !== -1)
  {
    common.push(elm);
  }
});

return common;
}

_inArray (needle, haystack)
{
  let length = haystack.length;
  for(let i = 0; i < length; i++)
  {
    if(haystack[i] === needle) return true;
  }
return false;
}

 bodyClick ()
 {
   el.addEventListener('click', function(e) {
     // How to use `_arrayIntersect` and `_inArray` from here
     // this._inArray(needle, haystack) getting undefined message
   });
 }
};

单击事件中的 this 对象指示被单击的元素而不是 class 实例。要调用 super/sub class 方法,您可以将 this 对象分配给 var,类似于以下方式:

bodyClick ()
{
   let self = this;
   el.addEventListener('click', function(e) {
       let isExist = self._inArray(needle, haystack);
   });
}