Closure Demo

Demonstration of a simple closure. Create a function to determine if a person is old enough to drink based on birthdate

by Rykus0

JavaScript

var birthday = new Date('6/24/1994');

function ageTestFactory(drinkingAge_yr){
    var MS_PER_YEAR = 31557600000;

    return function(dBirthdate){
        var dNow = new Date('6/24/2013'); // Force date to keep example correct
        var age_ms = dNow - dBirthdate;
        var age_yr = Math.floor(age_ms / MS_PER_YEAR);
        
        return age_yr > drinkingAge_yr;
    }
}

var canIDrink_us = ageTestFactory(21);
var canIDrink_pl = ageTestFactory(18);

console.log(canIDrink_us(birthday));
console.log(canIDrink_pl(birthday));