现有三种菜单:button 类型,select 类型,modal 类型。
- 共同特点
- title icon 属性
- isDisabled 方法(可直接返回 false)
- exec 方法,执行菜单的逻辑
- 不同
- button 类型,执行 exec 时打印
'hello'
- select 类型,执行 exec 时返回一个数组
['item1', 'item2', 'item3']
- modal 类型,执行 exec 时返回一个 DOM Element
<div>modal</div>
用 ES6 语法写出这三种菜单的 class
参考答案
class BaseMenu { constructor(title, icon) { this.title = title this.icon = icon } isDisabled() { return false } } class ButtonMenu extends BaseMenu { constructor(title, icon) { super(title, icon) } exec() { console.log('hello') } } class SelectMenu extends BaseMenu { constructor(title, icon) { super(title, icon) } exec() { return ['item1', 'item2', 'item3'] } } class ModalMenu extends BaseMenu { constructor(title, icon) { super(title, icon) } exec() { const div = document.createElement('div') div.innerText = 'modal' return div } }