|<- [[jsfn:Creating and namespacing modules]]|[[jsfn:Chaining module method calls]] ->| var name_space = (function)() { return { parler: function() { console.log(arguments[0].dire); } } })(); name_space.parler({ dire: "salut" }); ==short-circuit evaluation== var name_space = (function)() { return { parler: function() { var mes_arguments = arguments[0] || ''; console.log(mes_arguments.dire); } } })(); name_space.parler(); // oubli ou pas d'arguments var name_space = (function)() { return { parler: function() { var mes_arguments = arguments[0] || ''; var phrase = mes_arguments.say || "bonjour"; // on s'assure qu'il y a quelque chose à dire sinon phrase par défaut. console.log(phrase); } } })(); name_space.parler(); // oubli ou pas d'arguments Pour un exemple plus grand : var name_space = (function)() { var DEFAUT = { // phrases par défaut si défaut dire: "bonjour" } return { parler: function() { var mes_arguments = arguments[0] || ''; var phrase = mes_arguments.say || DEFAUT.dire; // on s'assure qu'il y a quelque chose à dire sinon phrase par défaut. console.log(phrase); } } })(); name_space.parler(); // oubli ou pas d'arguments