The AMD proposal allows you to just return a value for the exported object. But note that is a feature of the AMD proposal, it is just an API proposal, and will make it harder to translate the module back to a regular CommonJS module. I think that is OK, but useful info to know.
So you can do the following:
I prefer modules that export a constructor function to start with an upper-case name, so the non-optimized version of this module would also be in Employee.js
define("Employee", function () {
//You can name this function here,
//which can help in debuggers but
//has no impact on the module name.
return function Employee(first, last) {
this.first = first;
this.last = last;
};
});
Now in another module, you can use the Employee module like so:
define("main", ["Employee"], function (Employee) {
var john = new Employee("John", "Smith");
});