Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var Animal, Horse, Snake, sam, tom;
- var __extends = function(child, parent) {
- var ctor = function(){ };
- ctor.prototype = parent.prototype;
- child.__superClass__ = parent.prototype;
- child.prototype = new ctor();
- child.prototype.constructor = child;
- };
- Animal = function() {
- };
- Animal.prototype.move = function(meters) {
- return console.log(this.name + " moved " + meters + "m.");
- };
- Animal.Mixin = function(self){
- var sex = "male";
- self.getSex = function(){
- return sex;
- }
- self.thinkThenMove = function(){
- console.log("thinking...");
- self.move();
- }
- }
- Snake = function(name) {
- new Animal.Mixin(this);
- this.name = name;
- return this;
- };
- __extends(Snake, Animal);
- Snake.prototype.move = function() {
- console.log("Slithering...");
- return Snake.__superClass__.move.call(this, 5);
- };
- sam = new Snake("Sammy the snake");
- // sam.sex => undefined
- // sam.getSex => 'male'
- // sam instanceof Animal => true
- // sam instanceof Snake => true
- // sam.thinkThenMove() => slithering...
Add Comment
Please, Sign In to add comment