设计ES6:识别类组的适当方法

时间:2017-08-27 17:45:44

标签: javascript class es6-class

我有一组课程,他们没有共享任何属性。我想要做的是检查任意对象是否是该组中任何类的实例。 我可以想到两种方法,首先是在每个类中定义一个特殊的签名属性,例如字符串,并在任意对象中检查它,第二种方法是从空类继承所有类并检查这是否是任意的object是instanceof基类构造函数,所以可以从空类继承吗?哪一个更合适?还是有更好的方法?

2 个答案:

答案 0 :(得分:0)

我会说你应该继续使用继承,因为它在语义和直觉上最有意义。您有一组类,它们属于一个公共集,即使它们不与该父级共享具体属性,它们也会共享它们“属于”该父级的抽象属性。

当然,多种方法都有效,但我认为这是最能代表这一想法的方法。

答案 1 :(得分:0)

我不使用类,但它应该与构造函数相同,因为JS类只是语法糖。所以,

function Maker(n){
  this.number = n;
}

Maker.prototype.getConstructorName = function(){
                                       return this.constructor.name;
                                     };

var obj1 = new Maker(10);
console.log(obj1.getConstructorName());