private attributes and inheritance in javascript
by odiseo
JavaScript
var CreditCard = function(ccNumber,expirationDate) {
var _creditCardNumber = ccNumber;
var _expirationDate = expirationDate;
function getCreditCardNumber() {
var chunks = _creditCardNumber.split('-');
return chunks[chunks.length - 1];
}
function isExpired() {
var chunks = _expirationDate.split('/');
var year = chunks[chunks.length - 1];
return (year < '13'); //ok, a sloppy validation
}
return {
isExpired: isExpired,
getCreditCardNumber: getCreditCardNumber,
};
};
var myCard = CreditCard('1213-6666-4232-2323', '02/14');
console.log(myCard);
console.log(myCard.getCreditCardNumber());
function object(obj){
function F(){};
F.prototype = obj;
return new F();
}
var sorianaCard = object(CreditCard('5555-5555-6666-6666', '02/12'));
//We futher extend an object functionality
sorianaCard.getTienda = function(){return "Guadalajara";};
console.log(sorianaCard.getCreditCardNumber());
console.log(sorianaCard.getTienda());