Читать книгу Aprender Javascript Avanzado con 100 ejercicios prácticos - MEDIAactive - Страница 15
009 Objetos envolventes para primitivos
ОглавлениеLOS TRES TIPOS DE DATOS PRIMITIVOS en JavaScript, booleano, numérico y cadena de caracteres, tiene su correspondiente constructor: Boolean, Number y String. Los valores primitivos son contenidos o envueltos (wrap) en las instancias, también denominadas objetos envolventes (en inglés, wraper objects).
1. En este ejercicio veremos los detalles de los objetos que envuelven los primitivos. Para empezar diremos que los constructores crean objetos que son prácticamente incompatibles con los valores primitivos que envuelven.
2. Si estos constructores se utilizan como funciones, la conversión de los valores se lleva a cabo en sus correspondientes tipos de primitivos.
3. Aunque los expertos recomiendan este método de conversión, lo cierto es que entre los programadores de JavaScript se tiende a evitar los objetos envolventes. ¿Por qué? Porque la conversión no es un proceso necesario, puesto que casi todo cuanto pueden hacer los objetos también pueden hacerlo los primitivos.
4. Los objetos envolventes son distintos a los datos primitivos. Si tenemos en cuenta que las instancias envolventes son objetos,podemos deducir que no existe ningún modo de comparar objetos en JavaScript, ni mediante operadores de igualdad como ==.
5. Si lo que necesita es añadir propiedades a un valor primitivo, será preciso envolver la primitiva y añadir la propiedad al objeto envolvente. Con este proceso lo que estamos haciendo es desenvolver el valor para poder trabajar con él. Vea un ejemplo de este proceso en las siguientes líneas:
new Boolean (true)
new Number(258)
new String(‘caso1’)
6. Así los valores primitivos han sido envueltos con el correspondiente constructor (Boolean, Number y String). Para desenvolverlos, se utiliza el método valueOf() , el cual está presente en todos los objetos:
new Boolean (true).valueOf()
true
new Number(258).valueOf()
258
new String(‘caso1’).valueOf()
‘caso1’
Recuerde que todo cuanto escribimos tras la doble barra // no es interpretado por el navegador web.
7. Tal y como veremos con detalle en un ejercicio anterior, la conversión de objetos envolventes en primitivas genera números y texto (o cadenas de caracteres), pero no datos booleanos.
8. Por último, cabe destacar que los datos primitivos adquieren sus métodos de los correspondientes objetos envolventes.