我有一个继承自EditNote
的类ViewNote
,问题是无论何时我尝试访问super.removeElement('bible-close')
(这是超类中的方法),我都会得到{{1} (TypeError
)
Uncaught TypeError: Cannot read property 'call' of undefined
上述代码的问题是class ViewNote {
constructor() {
let viewNote = document.querySelector('.view-note');
let viewNoteParent = document.querySelector('.bible-view-note-list');
this.viewNote = () => viewNote;
this.viewNoteParent = () => viewNoteParent;
}
removeParentElement(el) {
this.viewNote().removeAttribute('style');
Array.from(
this.viewNote().querySelectorAll('.bible-view-note-item'),
el => el.remove()
);
}
}
class EditNote extends ViewNote {
constructor() {
super();
super.showNote({
editwidget: true,
listener({content, title, creationDate}, ...args) {
for (let i of args) {
i.addEventListener('click', e => {
let target = e.target;
if (target.className.includes('bible-close')) {
super.removeElement('bible-close');
return ;
}
})
}
}
});
}
}
会抛出super.removeParentElement('bible-close');
。我甚至尝试使用TypeError
关键字,但由于this
方法中this
未定义