关于前端:简单聊聊-SymboltoStringTag

47次阅读

共计 517 个字符,预计需要花费 2 分钟才能阅读完成。

一般来说,咱们能够通过 Object.prototype.toString 来晓得有一个变量的类型是啥

然而对于自定义的类创立的对象而言,就没有这么敌对了,浏览器对立都是返回 [Object, Object]

Symbol.toStringTag 这个货色是对象的内置属性名,其属性值示意的就是该对象的类型。

Object.prototype.toString 办法通过读取 toStringTag 来返回指定对象的类型,比方 NumberArrayObject 等等。

所以咱们能够自定义 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'})

正文完
 0