获取类名
class Base { static instance(){ return new this() } name1(){ return getClassName(this) } static name2(){ return getClassName(new this()) } } class A extends Base{ } class B extends Base{ } console.log(A.instance().name1()==='A') console.log(B.name2()==='B') function getClassName(obj) { if (obj && obj.constructor && obj.constructor.toString()) { if(obj.constructor.name) { return obj.constructor.name; } let str = obj.constructor.toString(); let arr; if(str.charAt(0) == '[') { arr = str.match(/\[\w+\s*(\w+)\]/); } else { arr = str.match(/function\s*(\w+)/); } if (arr && arr.length == 2) { return arr[1]; } } return undefined; }