在 ES6 中创建多个构造函数

2024-03-20

在 ES5 中,可以为一个类创建多个构造函数,同时使用原型保留两个类的公共部分,如下所示

function Book() {
    //just creates an empty book.
}


function Book(title, length, author) {
    this.title = title;
    this.Length = length;
    this.author = author;
}

Book.prototype = {
    ISBN: "",
    Length: -1,
    genre: "",
    covering: "",
    author: "",
    currentPage: 0,
    title: "",

    flipTo: function FlipToAPage(pNum) {
        this.currentPage = pNum;
    },

    turnPageForward: function turnForward() {
        this.flipTo(this.currentPage++);
    },

    turnPageBackward: function turnBackward() {
        this.flipTo(this.currentPage--);
    }
};

var books = new Array(new Book(), new Book("First Edition", 350, "Random"));

我想使用 ES6 类和构造函数语法获得相同的结果

class Book{
    constructore (){}
}

ECMAScript 不支持函数/构造函数重载。如果您仍然想破解它,您可以使用参数对象来执行此操作。

constructor(title, length, author) {
        if(!arguments.length) {
            // empty book
        }
        else {
            this.title = title;
            this.Length = length;
            this.author = author;
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ES6 中创建多个构造函数 的相关文章

随机推荐

  • 如何在asp.net中删除.aspx .asmx后缀

    我们的大部分应用程序都是基于asp net 所以所有的 url 都会有后缀 如 aspx 或 asmx 我想知道是否有什么想法可以删除它们 查看以下教程之一 URL路由 ASP Net 4 0 及更高版本 使用 ASP NET 4 Web
  • 使用java下载zip文件?

    我正在使用 Java 从 Web 服务器下载 zip 文件 但不知何故我在每个文件中丢失了大约 2kb 我不知道为什么 因为相同的代码可以很好地处理其他格式 例如文本 mp3 等 任何帮助表示赞赏 这是我的代码 public void do
  • 如何折叠区域中的空白?

    假设我有这个列表文本文件 field1 variable length field variable length field aaaaaa aaaa aaaaaaaaa bbbbbb bbbbbbbbbbbbbbbbbbbb bbbb 我
  • 如何按顺序执行多个方法?

    强制方法按顺序执行的最佳方法是什么 我有三个方法 但我希望方法1在方法2之前完成 然后当方法2完成时 执行方法3 Example void Method1 void Method2 void Method3 self Method1 sel
  • 通话中状态栏如何影响 ViewController 视图大小?

    我试图理解如何view关联到一个UITabBarController UINavigationController or UIViewController当通话状态栏切换时做出反应 我的问题是它们的行为似乎不同 这会给我带来副作用 我制作了
  • 错误:无法启动新线程

    我有一个使用以下配置运行的网站 Django mod wsgi 阿帕奇 在一个用户的请求中 我向另一个服务发送另一个HTTP请求 并通过python的httplib库解决了这个问题 但有时此服务得不到答复的时间太长 并且 httplib 的
  • 通过 URL 自动登录用户

    我每周向网站的注册会员发送一封邮件 其中包含该网站上私人页面的 URL 出于可用性目的 我不希望用户在单击 URL 后必须提供凭据 我正在使用 ASP NET 会员提供程序模型 Question 我如何实现这一点 以便用户可以通过单击专门的
  • 使用传递的参数附加方法后分离事件处理程序

    我需要将参数 在 C 中 传递给事件处理程序 然后能够分离事件处理程序 我附加事件处理程序并传递参数 map MouseLeftButtonUp sender e gt map MouseLeftButtonUp2 sender e sho
  • Python 导入机制

    我有两个相关的 Python 导入 问题 它们很容易测试 但我想要语言定义的答案而不是特定于实现的答案 而且我也对样式 约定感兴趣 所以我在这里问 1 如果模块 A 导入模块 B 模块 B 导入模块 C 模块 A 中的代码是否可以在不显式导
  • 如何获取 Binder 事务缓冲区的内容以进行故障排除

    有没有办法以编程方式或通过调试工具来了解 Binder 事务缓冲区中保存的当前事务 有时 通常在运行数小时 数天后 我的应用程序会崩溃并出现如下错误跟踪 08 30 09 49 57 459 1879 1904 E JavaBinder F
  • 具有行为奇怪的多值参数的存储过程

    我在 SQL Server 中创建了一个存储过程来为 SSRS 提供数据 以使其能够接受多个值 我已经创建了它 当我在报告中使用它或在 SQL Server 中执行它时 我收到以下错误消息 消息 207 第 16 层 状态 1 第 35 行
  • 如何避免电子邮件自动化的 Outlook 安全警告?

    我正在尝试使用 VBA 从 Excel 2010 发送 Outlook 电子邮件 Stack Overflow 上的大多数答案似乎都没有使用 VBA 来避免 Outlook 安全警告的方法 对于 Outlook Excel 2010 也没有
  • Swift - 从地图注释执行 Segue

    我的地图上有 1 个图钉 我需要将注释标题传递给另一个 UIView 在这种情况下是 ikinci Ekran swift 但我无法这样做 这是我的代码的segue部分 我不知道如何segue所选注释的标题 我只粘贴了相关部分的代码 cla
  • 从数据库中检索mp3文件

    我有一个关于如何从数据库中检索存储为 byte 数组的 mp3 文件并将其显示在表单中并让用户下载 播放的问题 唔 这确实可以做到 但如果它是 RDBMS 您确实应该重新考虑解决方案 通常 数据库不是为使用大型二进制对象而设计或优化的 并且
  • 首次打开时 Colorbox 无法以正确的高度打开

    所以我正在使用colorbox http colorpowered com colorbox 联系表单插件 我只是默认的 colorbox 属性 所以它应该自动调整到它包含的 div 对吗 首次加载时 此颜色框内容上有一个小的垂直滚动条 我
  • Android 虚拟键盘监听器

    虽然我之前问过这个问题 但没有得到任何正确的答案 当编辑文本聚焦时 我有一个 EditText android 虚拟键盘弹出 我已使用属性窗口中的 ime 选项将 完成 按钮添加到键盘 现在我想通过按 完成 按钮来执行一些操作 这个怎么做
  • 使用 Html 链接将 PHP GET 数据发送到服务器

    我有一段时间没有写 PHP GET 请求了 所以我有点生锈了 但是如何使用 Html 链接发送 GET 数据 如果我使用 jQuery 的 get 方法 我知道该怎么做 但我只是想知道是否有更简单的方法使用 Html 中的 href 或类似
  • Java中如何使图像从左向右移动

    到目前为止 我已经创建了下面的类 但是 现在我想插入一个代码以使图像从左到右和从右到左滑动 我通常会使用滑动平台 但是当我尝试实现它时它不起作用 我还是一个java初学者 所以我很感谢你的帮助 这是我的 Java 类的代码 package
  • 升级Java后找不到Sun.security

    我有一个使用 Play 2 0 创建的应用程序 我实现了 scribe java 库来使用一些 OAuth 服务 直到今天一切都很好 但是当我升级 jdk 并重新启动服务器时 我无法使用 scribe java 库 似乎它使用了一些类 例如
  • 在 ES6 中创建多个构造函数

    在 ES5 中 可以为一个类创建多个构造函数 同时使用原型保留两个类的公共部分 如下所示 function Book just creates an empty book function Book title length author