//http://www.jermywells.com //factory---> var CheesecakeFactory = { GetNewYorkCheesecake: function () { return NewYorkCheesecake(); }, GetStrawberryCheesecake: function () { return StrawberryCheesecake(); }, GetToastedSmoresCheesecake: function () { return ToastedSmoresCheesecake(); }, Create: function (config) { var ck = new Cheesecake(); ck.Name = config.CheesecakeName; ck.Flavor = config.CheesecakeFlavor; ck.Size = config.CheesecakeSize; return ck; } }; //the cheesecakes---> var Cheesecake = function() {} var NewYorkCheesecake = function() { return CheesecakeFactory.Create({ CheesecakeName : 'New York Cheesecake', CheesecakeFlavor : 'Delicious New York Cheesecake', CheesecakeSize : '12" round' }); } var StrawberryCheesecake = function() { return CheesecakeFactory.Create({ CheesecakeName : 'Berry Strawberry Cheesecake', CheesecakeFlavor : 'Strawberry', CheesecakeSize : '10" round' }); } var ToastedSmoresCheesecake = function() { return CheesecakeFactory.Create({ CheesecakeName : 'Toasted Marshmallow S\'mores Galoreā¢', CheesecakeFlavor : 'S\'mores and marshmallows', CheesecakeSize : 'sold by the piece' }); } //instantiate some cheesecakes from the factory methods--> var ny = CheesecakeFactory.GetNewYorkCheesecake(); var strawberry = CheesecakeFactory.GetStrawberryCheesecake(); var smores = CheesecakeFactory.GetToastedSmoresCheesecake(); var turtle = CheesecakeFactory.Create({ CheesecakeName : 'Turtle', CheesecakeFlavor : 'Turtle', CheesecakeSize : '100" round' }); //add cheeseCakes to a meta array--> var cheeseCakes = [ { cheeseCake: turtle, isAnInstanceOfACheesecakeObject: (turtle instanceof Cheesecake) }, { cheeseCake: ny, isAnInstanceOfACheesecakeObject: (ny instanceof Cheesecake) }, { cheeseCake: strawberry, isAnInstanceOfACheesecakeObject: (strawberry instanceof Cheesecake) }, { cheeseCake: smores, isAnInstanceOfACheesecakeObject: (smores instanceof Cheesecake) } ]; //--loop the cheesecakes to display them---> var elem = document.getElementById('cheeseCakes'); for(var i=0;i<cheeseCakes.length;i++){ elem.innerHTML += '<div class="cheeseCake">' + '<div>name: ' + cheeseCakes[i].cheeseCake.Name + '</div>' + '<div>flavor: ' + cheeseCakes[i].cheeseCake.Flavor + '</div>' + '<div>size: ' + cheeseCakes[i].cheeseCake.Size + '</div>' + '<div class="' + (cheeseCakes[i].isAnInstanceOfACheesecakeObject ? 'green' : 'red') + '"> is an instance of a Cheesecake object: ' + cheeseCakes[i].isAnInstanceOfACheesecakeObject + '</div>' + '</div>'; }
<div id="cheeseCakes"></div>
.green{ background-color:green; color:white; } .red{ background-color:red; color:white; } .cheeseCake{ background-color:#dbdbdb; margin:5px 5px 5px 5px; border:1px solid silver; padding:15px; }