Part I
var Person = function (firstname, lastname) {
this.firstname = firstname
this.lastname = lastname
this.printName = function (){
console.log('My name is ', this.firstname, this.lastname);
}
};
Person.prototype.myName = function() {
console.log('My full name is ', this.firstname, this.lastname);
};
var brian = new Person('Brian', 'Chirgwin');
var john = new Person('John', 'Doe');
brian.printName(); // My name is Brian Chirgwin
john.printName(); // My name is John Doe
brian.myName(); // My full name is Brian Chirgwin
brian.printName = function(){
console.log('call me Brian');
};
brian.myName = function(){
console.log('Mr. ', this.lastname);
};
brian.printName(); // call me Brian
brian.myName(); // Mr. Chirgwin (object version)
john.myName(); // My full name is John Doe (Protoype)
fn.js
// Procedural
var getPopulation(){
var zips = loadData();
var count = zips.length;
var population;
for(var i = 0; i < count; i++){
population += zips[i].population;
}
return population;
}
console.log(getPopulation);
[1,2,3,4,5]
[1,3,5]
[1,2,3,4,5]
[2,4,6,8,10]
[1,2,3,4,5]
[15]
[1, 1, 2, 3]
{ 1: [1,1]
2: [2],
3: [3] }
Ability to pre-load a function with an argument or two in order two receive a new function that remembers those arguments
Erlang Factorial Function
factorial(0) ->
1;
factorial(X) when X > 0 ->
X * factorial(X-1).