El m茅todo valueOf()
retorna el valor primitivo del objeto especificado.
Sintaxis
object.valueOf()
Valor de retorno
El valor primitivo del objeto especificado.
Descripci贸n
JavaScript utiliza el m茅todo valueOf para convertir un objeto a un valor primitivo. Raramente usted necesitar谩 invocar el m茅todo valueOf por su cuenta; JavaScript lo realizar谩 de forma autom谩tica cuando encuentre un objeto, donde un valor primitivo es esperado.
Por defecto, el m茅todo valueOf es heredado por cada objeto descendiente de Object
. Cada objeto incorporado en el n煤cleo del lenguaje sobreescribe este m茅todo para retornar un valor apropiado. Si un objeto no tiene un valor primitivo, valueOf devuelve el objeto en s铆.
Puede utilizar valueOf dentro de su propio c贸digo para convertir un objeto incorporado en el n煤cleo del lenguaje en un valor primitivo. Cuando usted crea un objeto personalizado, puede sobreescribir el comportamiento de Object.prototype.valueOf() para invocar un m茅todo personalizado, en vez de utilizar el m茅todo por defecto Object
.
Sobreescribiendo valueOf para objetos personalizados
Puede crear una funci贸n para ser invocada en lugar de utilizar el m茅todo valueOf por defecto. Su funci贸n no debe contener ning煤n par谩metro.
Suponga que tiene un objeto de tipo myNumberType y usted quiere crear un m茅todo valueOf para este. El c贸digo a continuaci贸n asigna una funci贸n personalizada al m茅todo valueOf:
myNumberType.prototype.valueOf = function() { return customPrimitiveValue; };
Al tener el c贸digo anterior funcionando, cada vez que un objeto de tipo myNumberType es utilizado en un contexto donde deba ser representado por un valor primitivo, JavaScript autom谩ticamente invocar谩 la funci贸n definida en el c贸digo anterior.
El m茅todo valueOf es invocado usualmente por JavaScript pero usted puede invocarlo directamente como sigue a continuaci贸n:
myNumber.valueOf()
Nota: Objetos en contextos de string realizan la conversi贸n a string a trav茅s del m茅todo toString()
, el cual, es diferente de String
para convertir objetos a primitivos string utilizando el m茅todo valueOf. Todos los objetos pueden ser convertidos a string, si solo "[object type]". Pero muchos objetos no se pueden convertir a number, boolean o function.
Ejemplos
Utilizando valueOf
function myNumberType(n) {
this.number = n;
}
myNumberType.prototype.valueOf = function() {
return this.number;
};
myObj = new myNumberType(4);
myObj + 3; // 7
Especificaciones
Especificaci贸n | Estado | Commentario |
---|---|---|
ECMAScript 1ra Edici贸n. | Est谩ndar | Definici贸n inicial. Implementado en JavaScript 1.1. |
ECMAScript 5.1 (ECMA-262) La definici贸n de 'Object.prototype.valueOf' en esta especificaci贸n. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) La definici贸n de 'Object.prototype.valueOf' en esta especificaci贸n. |
Standard |
|
ECMAScript Latest Draft (ECMA-262) La definici贸n de 'Object.prototype.valueOf' en esta especificaci贸n. |
Draft |
Compatibilidad con Navegadores
Elemento | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Soporte B谩sico | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Elemento | Android | Chrome para Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Soporte B谩sico | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |