Кстати, ничего страшного не будет, если я стандартному объекту добавлю метод, чтобы наследование получилось более изящным с точки зрения синтаксиса:
Object.prototype.extends = function(parent)
{
this.prototype = Object.create(parent);
this.prototype.constructor = this;
};
var Interface =
{
fd : "default descriptor"
};
function Class1() {};
Class1.extends(Interface);
function Class2() {};
Class2.extends(Interface);
Class1.prototype.fd = "class1 descriptor";
var obj1 = new Class1();
var obj2 = new Class2();
//var obj = new Interface(); //ошибка, так как нельзя создать экземпляр виртуального класса
alert(obj1.fd);
alert(obj2.fd);