如何在 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);
});
}
我正在使用 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);
});
}