hasOwnProperty en JavaScript
-
Comprobación de
hasOwnProperty
en objetos en JavaScript -
Verificación de
hasOwnProperty
en Objetos de una Clase
A menudo vemos un dilema con respecto a la convención in
y hasOwnProperty
, pero ambos funcionan de manera diferente en un caso específico. El concepto principal es que in
funciona para objetos que tienen propiedades heredadas y da como resultado true
, mientras que hasOwnProperty
devuelve verdadero solo para propiedades que no se heredan en lugar de definirse explícitamente.
Aquí, solo hablaremos de hasOwnProperty
en JavaScript.
Comprobación de hasOwnProperty
en objetos en JavaScript
En JavaScript, la estructura para verificar si una propiedad está definida es así: objectName.hasOwnProprty(property)
. Aquí, un objeto puede ser un array
o puede ser un par clave-valor
. Puede consultar la ruta dirigida.
Uso de hasOwnProperty
en Array Object en JavaScript
Las matrices se indexan desde 0
y continúan hasta el último elemento disponible. Por lo tanto, preferimos los valores de índice para llamar a la propiedad de un objeto array. El siguiente ejemplo da una idea clara.
Fragmento de código:
var myObj = ['Liza', 'Kary', 'Blake'];
console.log(myObj.hasOwnProperty(2));
console.log(myObj.hasOwnProperty(3));
Producción:
Uso de hasOwnProperty
en objetos de par clave-valor
en JavaScript
En este sentido, consideraremos un diccionario que tendrá valores clave (cadena
) y propiedades (cualquier tipo de datos). Vamos con el siguiente ejemplo:
Fragmento de código:
var myObj = {
pet : "penguine",
age : 5,
}
console.log(myObj.hasOwnProperty("age"));
console.log(myObj.hasOwnProperty("color"));
Producción:
Como puede ver, el objeto myObj
tiene solo dos claves: pet
y age
. Si llamamos solo a estas dos propiedades por la hasOwnProperty
veremos que la consola da como resultado true
. De lo contrario, llamamos a una propiedad aleatoria color
, que da como resultado false
.
Verificación de hasOwnProperty
en Objetos de una Clase
JavaScript ES6 tiene una característica adicional de clase
, y el uso de constructor
permite la definición de algunos objetos dinámicos. Mientras que después de declarar los objetos, puede acceder fácilmente a ellos definiendo su valor para ellos. La demostración aclarará la explicación de esta sección. Además, para cualquier valor personalizado, si la propiedad existe dentro del constructor de clase
, obtendrá la respuesta true
; en caso contrario, false
.
Fragmento de código:
class pet {
constructor(name, age) {
this.name = name;
this.age = age;
}
}
const pet1 = new pet('Izequel', 5);
console.log(pet1.hasOwnProperty('name'));
console.log(pet1.hasOwnProperty('color'));