JSFiddle - React, Tailwind, and code Playground
HTML
<div id="container"> </div>
JavaScript
function extend(current, base) {
// копируем статические проперти
for (var key in base) {
if (base.hasOwnProperty(key)) {
current[key] = base[key];
}
}
// получаем прототип
current.prototype = Object.create(base.prototype);
};
// Объявляем пространство имен Dialogs
var Dialogs;
(function (Dialogs) {
// класс Popup
Dialogs.Popup = (function () {
// статическая функция
Popup.show = function () {
alert("show");
};
// Конструктор класса
function Popup(message) {
this._message = message;
}
Popup.prototype.hello = function () {
var self = this;
var message = $(this._message).click(function () {
self.sayBye();
});
$("#container").append(message);
};
Popup.prototype.sayBye = function () {
alert("Bye");
};
Popup.prototype.say = function () {
alert(this._message);
};
return Popup;
}());
// класс Popup2 extend Popup
Dialogs.Popup2 = (function (superClass) {
extend(Popup2, superClass);
function Popup2() {
superClass.apply(this, arguments);
}
Popup2.prototype.sayBye = function () {
alert("Bye2");
};
return Popup2;
}(Dialogs.Popup));
})(Dialogs || (Dialogs = {}));
popup = new Dialogs.Popup("<div>Hello</div>");
popup.hello();
popup2 = new Dialogs.Popup2("<div>Hello</div>");
popup2.hello();
Dialogs.Popup2.show()