継承
The Good Parts のやつ
var mammal = function(spec) { var name = spec.name, cry = spec.cry, self = { getName: function() { return name; }, getCry: function() { return cry; }, say: function() { console.log(self.getName() + ' ' + self.getCry() + '.') return self; }, }; return self; }; var cat = function(spec) { var self = mammal(spec); self.sleep = function() { var name = self.getName(); console.log(name + ' zzzz.'); return self; }; return self; }; var dog = function(spec) { var self = mammal(spec); self.run = function() { var name = self.getName(); console.log(name + ' run.'); return self; }; return self; }; cat({name: 'tama', cry: 'meow'}).say().sleep(); dog({name: 'pochi', cry: 'bow'}).say().run();