var Super = function() {
this.version = "0.2016...";
}
Super.prototype.method1 = function() {
console.log(this.version);
this.method2();
}
Super.prototype.method2 = function() {
console.log("done!");
}
var instance = new Super();
instance.method1();
// Создание супер класса
var SuperClass = function() {
// Создание свойств супер класса
this.prop = "property";
}
// Добавление методов в прототип супер класса
SuperClass.prototype.method = function() {
return this.prop;
};
// Наследование
var SubClass = function() {
// Наследование свойств супер класса
SuperClass.apply(this, arguments);
// создание собственных свойств
this.prop = "property";
}
// Наследование методов супер класса
SubClass.prototype = Object.create(SuperClass.prototype);
// Возврат значения свойства constructor
SubClass.prototype.constructor = SubClass;
// Создание собственных методов
SubClass.prototype.subMethod = function() {
console.log("yo!");
};
// Создания экземпляра класса
var instance = new SubClass();
// Вызов методов экземпляра
instance.subMethod();
console.log(instance.method());
console.log(instance.prop);
document.addEventListener("keydown", function(event) {
console.log(event.key);
}, false);
var event = document.createEvent("Event");
event.initEvent("keydown", true, true);
event.view = document.defaultView;
event.altKey = false;
event.ctrlKey = false;
event.shiftKey = false;
event.metaKey = false;
event.key = "a";
document.dispatchEvent(event);