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

目录
相关文章
|
2月前
|
JavaScript
js开发:请解释什么是ES6的类(class),并说明它与传统构造函数的区别。
ES6的类提供了一种更简洁的面向对象编程方式,对比传统的构造函数,具有更好的可读性和可维护性。类使用`class`定义,`constructor`定义构造方法,`extends`实现继承,并可直接定义静态方法。示例展示了如何创建`Person`类、`Student`子类以及它们的方法调用。
34 2
|
17天前
|
JavaScript 前端开发
JavaScript进阶-Class与模块化编程
【6月更文挑战第21天】**ES6引入Class和模块化,提升JavaScript的代码组织和复用。Class是原型机制的语法糖,简化面向对象编程。模块化通过`import/export`管理代码,支持默认和命名导出。常见问题包括`this`指向和循环依赖。理解这些问题及避免策略,能助你写出更高效、可维护的代码。**
|
21天前
|
JavaScript 前端开发 Java
【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析
【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析
23 2
|
21天前
|
存储 JavaScript 前端开发
【JavaScript】JavaScript 中的 Class 类:全面解析
【JavaScript】JavaScript 中的 Class 类:全面解析
26 1
|
6天前
|
JavaScript 前端开发
JavaScript编码之路【ES6新特性之Class类】(二)
JavaScript编码之路【ES6新特性之Class类】(二)
7 0
|
6天前
|
JavaScript 前端开发
JavaScript编码之路【ES6新特性之Class类】(一)
JavaScript编码之路【ES6新特性之Class类】(一)
12 0
|
2月前
|
前端开发 JavaScript
前端 js 经典:class 类
前端 js 经典:class 类
11 2
|
2月前
|
前端开发 JavaScript
前端 JS 经典:Class 面向对象
前端 JS 经典:Class 面向对象
15 1
|
2月前
|
JavaScript 前端开发
js继承的超详细讲解:原型链继承、构造函数继承、组合继承、原型式继承、寄生式继承、寄生组合式继承、class继承
js继承的超详细讲解:原型链继承、构造函数继承、组合继承、原型式继承、寄生式继承、寄生组合式继承、class继承
103 0
|
2月前
|
前端开发 JavaScript
前端深入理解JavaScript面向对象编程与Class
随着JavaScript的发展,ECMAScript 6(ES6)引入了许多新的语言特性和语法糖,其中包括了面向对象编程的Class(类)机制。Class提供了一种更简洁、更直观的方式来定义对象和操作对象的行为。本文将介绍ES6中Class的概念、语法和特性,并通过示例代码来说明其实际应用。