mirror of
https://github.com/jashkenas/coffeescript.git
synced 2022-11-09 12:23:24 -05:00
44 lines
No EOL
1.2 KiB
JavaScript
44 lines
No EOL
1.2 KiB
JavaScript
var Animal, Horse, Snake, sam, tom;
|
|
var __hasProp = Object.prototype.hasOwnProperty, __extends = function(child, parent) {
|
|
for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }
|
|
function ctor() { this.constructor = child; }
|
|
ctor.prototype = parent.prototype;
|
|
child.prototype = new ctor;
|
|
child.__super__ = parent.prototype;
|
|
return child;
|
|
};
|
|
Animal = function() {
|
|
function Animal(name) {
|
|
this.name = name;
|
|
}
|
|
Animal.prototype.move = function(meters) {
|
|
return alert(this.name + " moved " + meters + "m.");
|
|
};
|
|
return Animal;
|
|
}();
|
|
Snake = function() {
|
|
function Snake() {
|
|
Snake.__super__.constructor.apply(this, arguments);
|
|
}
|
|
__extends(Snake, Animal);
|
|
Snake.prototype.move = function() {
|
|
alert("Slithering...");
|
|
return Snake.__super__.move.call(this, 5);
|
|
};
|
|
return Snake;
|
|
}();
|
|
Horse = function() {
|
|
function Horse() {
|
|
Horse.__super__.constructor.apply(this, arguments);
|
|
}
|
|
__extends(Horse, Animal);
|
|
Horse.prototype.move = function() {
|
|
alert("Galloping...");
|
|
return Horse.__super__.move.call(this, 45);
|
|
};
|
|
return Horse;
|
|
}();
|
|
sam = new Snake("Sammy the Python");
|
|
tom = new Horse("Tommy the Palomino");
|
|
sam.move();
|
|
tom.move(); |