JS 自测题 —— 手写 class

现有三种菜单: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

参考答案

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
    }
}
相关推荐
不写八个2 小时前
Vue3.0教程004:ref和reactive对比
前端·javascript·vue.js
梅羽落4 小时前
JavaScript_03 超简计算器
前端·javascript
ChinaRainbowSea5 小时前
四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用)
java·javascript·数据库·redis·后端·nosql
前端 贾公子6 小时前
axios如何利用promise无痛刷新token
前端
Easonmax6 小时前
【javaSE】内部类(来自类和对象的补充)
开发语言·javascript·ecmascript
新生派7 小时前
HTML<hgroup>标签
前端·html
timer_0177 小时前
Tailwind CSS 正式发布了 4.0 版本
前端·css
新青年.8 小时前
【uniapp】uniapp使用java线程池
javascript·uni-app
答题卡上的情书8 小时前
uniapp版本升级
前端·javascript·uni-app
枫叶丹49 小时前
【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(三)
开发语言·前端·javascript·华为·harmonyos