Sì, ma è solo "migliore" se hai un sacco di chiavi da controllare, non solo tre. Qualcosa di simile a questo:
function opt(opt) {
for(var i = 0; i<3; i++) {
if(typeof opt["key"+((i > 0) ? "" : i + 1))] === "undefined") {
return;
}
}
// create object
}
Se opt
è indefinito tutte le sue chiavi saranno troppo, quindi non c'è un controllo implicito per quello.
Si potrebbe anche definire i nomi delle variabili che si desidera controllare in ordine, qualcosa di simile:
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
}
}
Non c'è molto di una soluzione migliore, ma permette per meno di battitura, se avete intenzione di controllando più di tre o quattro proprietà.
fonte
2012-05-23 20:42:16
* migliore * in che modo?L'idea di * migliore * è soggettiva. – epascarello