##Classical Inheritance emulation experiments in Javascript. the first one ###### (just because I like it) I've been experimenting different ways to emulate classical inheritance in javascript and I will daily publish insights about some experiments that I've been doing in the last months till I reach a stable and usable solution for this inexistent problem. The first one: ### Global Function 'Extends'; ```javascript function Extends(x,z){ return z.prototype = new x; } ``` This approach works more like a Decorator or a MixIn, but i like the syntax. When I started developing an framework called Supra that is MVC based, I thought that would be cool if I were able to have Controllers and Models APIs based on rails or cakephp, where we have your Controller extending AppController extending Controller Class and because of this, I began to seek ways to emulate classical inheritance in javascript. ...this was the first one that worked for a while... ### How it works?: ```javascript //First the main 'Class' declaration... function Foo(name){ this.name = name; this.sayName = function(){ console.log(this.name); } } //...and than the 'Class' that derivates from it. Extends(Foo,Bar = function(name){ this.name = name; this.newMethod = function(attr){ console.log(attr); } }); var FooInstance = new Foo('Alice') var BarInstance = new Bar('Willian') FooInstance.sayName(); //Alice BarInstance.sayName(); //Willian BarInstance.newMethod('test'); //test ``` ### Pros + Simple + lightweight + works well in so many tiny cases + Just my opinion : I like the syntax. ### Cons + No interface protection + Poor Contructor manipulation Give it a Chance .... just one line ..