The final creational pattern in this chapter is the Prototype pattern. Perhaps this
name sounds familiar. It certainly should: it is the mechanism through which
JavaScript inheritance is supported.
We looked at prototypes for inheritance but the applicability of prototypes need not
be limited to inheritance. Copying existing objects can be a very useful pattern. There
are numerous cases where being able to duplicate a constructed object is handy.
For instance, maintaining a history of the state of an object is easily done by saving
previous instances created by leveraging some sort of cloning.
var Westeros;
(function (Westeros) {
(function (Families) {
var Lannister = (function () {
function Lannister() {
}
Lannister.prototype.clone = function () {
var clone = new Lannister();
for (var attr in this){
clone[attr] = this[attr];
}
return clone;
};
return Lannister;
})();
Families.Lannister = Lannister;
})(Westeros.Families || (Westeros.Families = {}));
var Families = Westeros.Families;
})(Westeros || (Westeros ={}));