Creating and namespacing modulesChaining 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