Sí, pero es solo "mejor" si tiene muchas llaves para verificar, no solo tres. Algo como esto:
function opt(opt) {
for(var i = 0; i<3; i++) {
if(typeof opt["key"+((i > 0) ? "" : i + 1))] === "undefined") {
return;
}
}
// create object
}
Si no está definida opt
todas sus claves serán demasiado, por lo que hay una comprobación implícita para eso también.
También puede definir los nombres de las variables que desea comprobar en la matriz, algo como esto:
var propsToCheck = ["key", "key1", "key2"];
function(opt) {
for(var i = 0, ii = propsToCheck.length; i<ii; i++) {
if(typeof opt[propsToCheck[i]] === "undefined") {
return;
}
// create object
}
}
No hay mucho de una solución mejor, pero sí permite escribir menos si usted está planeando en revisando más de tres o cuatro propiedades.
* mejor * de qué manera?La idea de * mejor * es subjetiva. – epascarello