现有三种菜单:button 类型,select 类型,modal 类型。
- 共同特点
- title icon 属性
- isDisabled 方法(可直接返回 false)
- exec 方法,执行菜单的逻辑
- 不同
- button 类型,执行 exec 时打印
'hello'
- select 类型,执行 exec 时返回一个数组
['item1', 'item2', 'item3']
- modal 类型,执行 exec 时返回一个 DOM Element
<div>modal</div>
- button 类型,执行 exec 时打印
用 ES6 语法写出这三种菜单的 class
参考答案
js
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
}
}