que tienen un objeto de JavaScript personalizado que se crea con new
, y asignar propiedades a base de argumentos de creación:¿Cuál es la forma correcta de probar la existencia de una propiedad en un objeto de JavaScript?
function MyObject(argument) {
if (argument) {
this.prop = "foo";
}
}
var objWithProp = new MyObject(true); // objWithProp.prop exists
var objWithoutProp = new MyObject(false); // objWithoutProp.prop does not exist
Cuál es la forma correcta para la prueba de la existencia de la propiedad prop
de los objetos? He visto las siguientes formas utilizadas, pero no estoy seguro de si cualquiera de estas maneras es la mejor manera:
if (obj.prop) {}
if (obj.hasOwnProperty("prop")) {}
if ("prop" in obj) {}
Específicamente, I' m solo está interesado en probar si la propiedad está explícitamente definida para este objeto, no en la cadena de prototipos. Además, el valor nunca se establecerá en null
o undefined
, pero podría ser algo así como un objeto vacío o una matriz. Sin embargo, si desea incluir la forma correcta de hacerlo, siéntase libre.