01/02/2023
Javascript: Validar si el argumento pasado es un objeto

La siguiente función permite evaluar si el argumento es un objeto creado, por ejemplo, desde un constructor o como un objeto literal, independientemente de que el argumento sea pasado como un string.
Para comprender el código es necesario tomar en cuenta lo siguiente:
- Se requieren conocimientos básicos de Javascript.
- Compatibilidad con la mayoría de los navegadores actuales.
Casos de uso.
Algunos casos de uso para esta función son los siguientes:
El argumento de la función puede ser un objeto como new Date, {} o '{}', y el retorno de una función, por ejemplo: (function(){return {};})() ó (function(){return new Date;})().
Función anónima para validar un argumento como objeto
La función requiere de un argumento y retorna True si el mismo es un objeto o False si no lo es./**
* Validate if the passed argument is an object *
*/
(function(obj){
var val=obj;
if('object'!==typeof obj||null===obj){
try{
val=JSON.parse(obj);
}catch(e){
return false;
}
}
var obj=Object.create(val);
return Object.getPrototypeOf(obj)===val;
})('{"prop1":"value1","prop2":"value2","prop3":{"subprop3a":"value3a","subprop3b":"value3b"},"prop4":["abc","def"]}')
* Validate if the passed argument is an object *
*/
(function(obj){
var val=obj;
if('object'!==typeof obj||null===obj){
try{
val=JSON.parse(obj);
}catch(e){
return false;
}
}
var obj=Object.create(val);
return Object.getPrototypeOf(obj)===val;
})('{"prop1":"value1","prop2":"value2","prop3":{"subprop3a":"value3a","subprop3b":"value3b"},"prop4":["abc","def"]}')
Para comprobar el resultado de este ejemplo puede copiar y pegar el código en la consola del navegador web.
En Mozilla Firefox y Google Chrome puede abrir la consola a través del menú de Herramientas para el desarrollador u oprimir Ctrl + Mayús + I.