function С(){
this.a = 100;
// this - это новый объект, который будет присвоен переменной o.
// т.е. свойство "a" - это свойство создаваемого объекта
}
С.prototype.b = 200;
//С - формально это функция, логически у нас - это класс. Любая функция имеет прототип, с помощью которого мы можем добавлять свойства и методы для класса
//т.е. свойство "b" - это свойство прототипа, которое наследуется при создании объекта класса
var o = new C();
Теперь немного практики:
var CThis;
function C(){
alert(this.b); // 200 (b - уже есть, т.к. это свойство прописано в прототипе)
this.a = 100;
CThis=this; // сохраним для исследований
}
C.prototype.b = 200; // дополняем в класс новое свойство
var o = new C();
alert(CThis == o); //true
alert(o.prototype); //undefined (у объекта нет прототипа)
alert(o.constructor==C); //true (у объекта есть конструктор)
alert(o.constructor.prototype==C.prototype); //true