【发布时间】:2017-09-08 20:01:48
【问题描述】:
如何检测 EcmaScript 类是否有自己的构造函数? 请参阅下面的代码 sn-p。
class Person {
constructor(name, age) { // <- Own constructor
this._name = name;
this._age = age;
}
}
class Manager extends Person {
// This class does not have it's own constructor
}
似乎没有明确的方法来做这个检查。
感谢大家的时间和帮助。
【问题讨论】:
-
您能否详细说明拥有“自己的构造函数”意味着什么?您确实知道类不是真实的,对吧,而只是函数及其原型的语法糖?
-
@RayToal,参见示例。我需要以某种方式弄清楚
Person类有自己的构造函数,而Manager类没有。 -
你能详细说明你为什么要这样做吗?看起来您要求的是访问源代码。在 JavaScript 中,当你说
class和constructor时,你不是在创建类和构造函数,而是在定义一个函数,并可能在它的原型中添加一些东西。我真的不明白这个问题(虽然很有趣)有什么相关的答案,因为类在 JavaScript 中不是真实的。您是在问是否在运行时可以看到源代码的样子?我认为没有重大黑客攻击是不可能的...... -
@RayToal,你是对的,没有办法做我想做的事。我正在研究 DI 机制,需要获取类的构造函数。但不幸的是,构造方法 === 类定义,所以我应该找到另一种方法来做我需要的。
标签: javascript inheritance constructor