Symbol.toStringTag 属性是一个内置的元件值,用于自定义对象的默认字符串描述。当对象转换为字符串时(通常通过 Object.prototype.toString() 方法),它使开发人员能够为对象的类型提供自定义字符串表示。
当你对对象调用 toString() 时,JavaScript 会在内部调用 Object.prototype.toString(),这将返回一个包含对象类型的字符串。默认情况下,此字符串表示形式为 [object Object]。但是,您可以使用 Symbol.toStringTag 属性更改此表示形式,以提供有关对象类型的更多详细信息。
语法
以下是 JavaScript Symbol.toStringTag 属性的语法 −
Symbol.toStringTag
参数
此属性不接受任何类型的参数。
返回值
此属性返回一个字符串对象。
示例 1
让我们看一下以下示例,我们将在用户定义的对象上自定义 toStringTag 表示。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = {
name: 'Tessa',
age: 24,
[Symbol.toStringTag]: 'PersonDetails'
};
document.write(Object.prototype.toString.call(x));
</script>
</body>
</html>
如果我们执行上述程序,它将在网页上显示文本。
示例 2
考虑另一个场景,我们将为自定义类自定义 toStringTag 表示形式。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
class Bike {
constructor(x) {
this.x = x;
}
get[Symbol.toStringTag]() {
return 'Bike';
}
}
const a = new Bike('R15');
document.write(Object.prototype.toString.call(a));
</script>
</body>
</html>
在执行上述脚本时,它将在网页上显示文本。
示例 3
在下面的示例中,我们将 Symbol.toStringTgat 与派生类一起使用。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
class x extends Array {
get[Symbol.toStringTag]() {
return 'TP';
}
}
const y = new x(11, 22, 33);
document.write(Object.prototype.toString.call(y));
</script>
</body>
</html>
当我们执行脚本时,它会在网页上显示一个文本。