一般来说,咱们能够通过 Object.prototype.toString
来晓得有一个变量的类型是啥
然而对于自定义的类创立的对象而言,就没有这么敌对了,浏览器对立都是返回 [Object, Object]
。
Symbol.toStringTag
这个货色是对象的内置属性名,其属性值示意的就是该对象的类型。
Object.prototype.toString
办法通过读取 toStringTag
来返回指定对象的类型,比方 Number
、Array
、Object
等等。
所以咱们能够自定义 toStringTag
的值来给咱们的对象上 “ 标签 ”,简略操作如下
自定义类
class add{get[Symbol.toStringTag](){return 'class-add'}
}
let num = new add();
console.log('1.', num.__proto__.toString());
console.log('2.', Object.prototype.toString.call(num));
自定义对象
let obj = {};
Object.defineProperty(obj,Symbol.toStringTag,{value: 'my-Object'})