Symbol.toPrimitive
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
El Symbol.toPrimitive
es un símbolo que especifica una propiedad con valor de función que se llama para convertir un objeto en un valor primitivo correspondiente.
Pruébalo
Descripción
Con la ayuda de la propiedad Symbol.toPrimitive
(utilizada como valor de la función), se puede convertir un objeto en un valor primitivo. La función se llama con un argumento de cadena hint
, que especifica el tipo preferido del valor primitivo resultante. El argumento hint
puede ser uno de los siguientes: "number
", "string
" y "default
".
Atributos de la propiedad Symbol.toPrimitive |
|
---|---|
Sobrescribir | No |
Numerable | No |
Configurable | No |
Ejemplos
Modificar los valores primitivos convertidos desde un objeto
El siguiente ejemplo describe cómo la propiedad Symbol.toPrimitive
puede modificar el valor primitivo convertido desde un objeto.
// Un objeto sin la propiedad Symbol.toPrimitive.
const obj1 = {};
console.log(+obj1); // NaN
console.log(`${obj1}`); // "[object Object]"
console.log(obj1 + ""); // "[object Object]"
// Un objeto con la propiedad Symbol.toPrimitive.
const obj2 = {
[Symbol.toPrimitive](hint) {
if (hint === "number") {
return 10;
}
if (hint === "string") {
return "hello";
}
return true;
},
};
console.log(+obj2); // 10 — hint es "number"
console.log(`${obj2}`); // "hello" — hint es "string"
console.log(obj2 + ""); // "true" — hint es "default"
Especificaciones
Specification |
---|
ECMAScript Language Specification # sec-symbol.toprimitive |
Compatibilidad con navegadores
BCD tables only load in the browser