javascript - 扩展对象时覆盖两种类型的构造函数
问题描述
Javascript 中的某些对象,例如 Date,有两种类型的构造函数。
日期()
When called as a function, returns a string representation of the current date and time, exactly as new Date().toString() does.
新日期()
When called as a constructor, returns a new Date object.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#constructor
对于某些需要扩展的对象(例如 Date),我可以使用它class extend
来覆盖构造函数以添加其他功能。虽然在使用关键字初始化对象时使用它时效果很好new
,但如果您尝试使用函数类型构造函数,它会失败
TypeError:没有'new'就不能调用类构造函数
那么如何扩展现有对象以使这两种类型的构造函数都保持可行呢?
解决方案
推荐阅读
- python - 试图找到最佳累积概率子集,需要最少数量的“STR 基因座”/最接近所需概率
- string - List Prolog 中的 String to List Interpreter 卡在 2 个项目上
- mongodb - Mongo 数据库连接失败。启动 klov 服务器时捕获异常
- git - 如何在同一台笔记本电脑上访问不同的 github 帐户
- sql - Postgres 嵌套 JSONB 查询
- php - 你能把 HTML 放在一个全局 PHP 函数中吗?
- javascript - 为什么 mainWindow.minimize() 不起作用
- sql - 显示 MAX() 且其他列在没有 group by 语句的情况下出错
- jquery - 如何在jQuery中获取多个值?
- php - SQLSTATE[HY000] [2002] 连接被拒绝(SQL:从`posts`中选择*)与sailing docker容器