Converting C# class to JavaScript
- by AgileMeansDoAsLittleAsPossible
Take a look at this basic class:
namespace AcmeWeb
{
public string FirstName { get; set; }
public class Person
{
public Person(string firstName, string lastName)
{
if (String.IsNullOrEmpty(firstName))
{
throw new ArgumentNullException(firstName);
}
this.FirstName = firstName;
}
}
}
What's the best translation of this into JavaScript?
This is what I'm thinking:
(function(namespace) {
namespace.Person = function(firstName, lastName) {
// Constructor
(function() {
if (!firstName) {
throw "'firstName' argument cannot be null or empty";
}
})();
// Private memberts
var _ = {
firstName: firstName
};
// Public members
this.firstName = function(value) {
if (typeof(value) === "undefined") {
return _.firstName;
}
else {
_.firstName = value;
return this;
}
};
};
})(AcmeWeb);