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
    }
}
相关推荐
ByteCraze3 分钟前
前端性能与监控指标采集系统设计方案
前端
山楂树の9 分钟前
前端实时渲染性能优化 使用cocoRLE编码进行图像传输并着色绘制
前端·图像处理·实时互动
程序员祥云10 分钟前
云希谷技术面
前端
一 乐16 分钟前
心理健康管理|基于springboot + vue心理健康管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
G***E31617 分钟前
重塑前端的力量:从界面承载到体验驱动的全链路能力进化
前端
HIT_Weston17 分钟前
60、【Ubuntu】【Gitlab】拉出内网 Web 服务:Gitlab 配置审视(四)
前端·ubuntu·gitlab
G***E31618 分钟前
前端技术的下一场深变:从工程化到智能化的全面升级
前端
前端小端长19 分钟前
深入理解Composition API与Vue3.0响应式原理
开发语言·javascript
哆啦A梦15889 小时前
商城后台管理系统 03 登录布局
javascript·vue.js·elementui
曼巴UE59 小时前
UE FString, FName ,FText 三者转换,再次学习,官方文档理解
服务器·前端·javascript