首页 > 解决方案 > 扩展对象时覆盖两种类型的构造函数

问题描述

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'就不能调用类构造函数

那么如何扩展现有对象以使这两种类型的构造函数都保持可行呢?

标签: javascript

解决方案


推荐阅读