Me parece que hay cuatro formas diferentes que pueden determinar si un objeto dado (por ejemplo foo
) tiene una propiedad determinada (por ejemplo bar
) definidos:JavaScript: ¿Está definido un miembro?
if (foo.hasOwnProperty(bar)) {
if ('bar' in foo) {
if (typeof foo.bar !== 'undefined') {
if (foo.bar === undefined) {
Para determinar si hay una adecuada ty llamado "bar
" en el objeto foo
, ¿son equivalentes las tres afirmaciones? ¿Hay alguna semántica sublime que no sé que hace que estas tres afirmaciones sean diferentes?
a tener en cuenta que, a menos que alguien ha sobrescrito la variable 'undefined' mundial, 3 también se puede hacer como si' (foo.bar == indefinido) {'. – Domenic