TypeScript/tests/baselines/reference/derivedClasses.js
2014-07-12 17:30:19 -07:00

85 lines
1.7 KiB
JavaScript

//// [derivedClasses.ts]
class Red extends Color {
public shade() {
var getHue = () => { return this.hue(); };
return getHue() + " red";
}
}
class Color {
public shade() { return "some shade"; }
public hue() { return "some hue"; }
}
class Blue extends Color {
public shade() {
var getHue = () => { return this.hue(); };
return getHue() + " blue";
}
}
var r = new Red();
var b = new Blue();
r.shade();
r.hue();
b.shade();
b.hue();
//// [derivedClasses.js]
var __extends = this.__extends || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
__.prototype = b.prototype;
d.prototype = new __();
};
var Red = (function (_super) {
__extends(Red, _super);
function Red() {
_super.apply(this, arguments);
}
Red.prototype.shade = function () {
var _this = this;
var getHue = function () {
return _this.hue();
};
return getHue() + " red";
};
return Red;
})(Color);
var Color = (function () {
function Color() {
}
Color.prototype.shade = function () {
return "some shade";
};
Color.prototype.hue = function () {
return "some hue";
};
return Color;
})();
var Blue = (function (_super) {
__extends(Blue, _super);
function Blue() {
_super.apply(this, arguments);
}
Blue.prototype.shade = function () {
var _this = this;
var getHue = function () {
return _this.hue();
};
return getHue() + " blue";
};
return Blue;
})(Color);
var r = new Red();
var b = new Blue();
r.shade();
r.hue();
b.shade();
b.hue();