1 回答

TA贡献1780条经验 获得超1个赞
让函数接受回调来测试导致其中断的条件。
_computePath(aComponent, stopfun = parent => false) {
let result = '';
let parent = aComponent.parentNode;
while (parent.tagName !== 'MY-ROOT-COMPONENT') {
if (stopfun(parent)) {
result = null;
break;
}
if (parent.hasAttribute('my-attribute')) {
result = `/${parent.getAttribute('my-attribute')}${result}`;
}
parent = parent.parentNode;
}
return result;
}
let result1 = obj1._computePath(component1); // no extra stop check
let result2 = obj2._computePath(component2, parent => parent.tagName === 'SPECIAL-COMPONENT' || parent.condition === 'special');
添加回答
举报