JS 自测题 —— 手写 class

简介: 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

参考答案

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
    }
}

目录
相关文章
|
8月前
|
JavaScript
js开发:请解释什么是ES6的类(class),并说明它与传统构造函数的区别。
ES6的类提供了一种更简洁的面向对象编程方式,对比传统的构造函数,具有更好的可读性和可维护性。类使用`class`定义,`constructor`定义构造方法,`extends`实现继承,并可直接定义静态方法。示例展示了如何创建`Person`类、`Student`子类以及它们的方法调用。
94 2
|
4月前
|
Web App开发 JavaScript 前端开发
JavaScript 类(class)
JavaScript 类(class)
30 2
JavaScript 类(class)
|
4月前
|
JavaScript 前端开发
js之class继承|27
js之class继承|27
|
7月前
|
JavaScript 前端开发
JavaScript进阶-Class与模块化编程
【6月更文挑战第21天】**ES6引入Class和模块化,提升JavaScript的代码组织和复用。Class是原型机制的语法糖,简化面向对象编程。模块化通过`import/export`管理代码,支持默认和命名导出。常见问题包括`this`指向和循环依赖。理解这些问题及避免策略,能助你写出更高效、可维护的代码。**
69 5
|
7月前
|
JavaScript 前端开发 Java
【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析
【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析
69 2
|
7月前
|
存储 JavaScript 前端开发
【JavaScript】JavaScript 中的 Class 类:全面解析
【JavaScript】JavaScript 中的 Class 类:全面解析
245 1
|
6月前
|
JavaScript 前端开发
JavaScript编码之路【ES6新特性之Class类】(二)
JavaScript编码之路【ES6新特性之Class类】(二)
33 0
|
6月前
|
JavaScript 前端开发
JavaScript编码之路【ES6新特性之Class类】(一)
JavaScript编码之路【ES6新特性之Class类】(一)
45 0
|
8月前
|
前端开发 JavaScript
前端 js 经典:class 类
前端 js 经典:class 类
47 2
|
8月前
|
前端开发 JavaScript
前端 JS 经典:Class 面向对象
前端 JS 经典:Class 面向对象
41 1