ООП в Javascript
В первом случае вы добавляете атрибуты в новосозданный экземпляр, во втором – один из атрибутов добавлен в прототип.
function A(){this.a = 100; this.b = 200;}
var a = new A();
var b = new A();
function B(){this.a = 100;}
B.prototype.b = 200;
var c = new B();
var d = new B();
a //A {a: 100, b: 200}
b //A {a: 100, b: 200}
a.a = 150; b.b = 250;
a //A {a: 150, b: 200}
b //A {a: 100, b: 250}
c.a = 175;
B.prototype.b = 275;
c //B {a: 175, b: 275}
d //B {a: 100, b: 275}

У объектов c и d свойство b унаследовано из прототипа и оно одно на все экземпляры. У экземпляров объекта B нет «личного» свойства b То есть
a.hasOwnProperty('a') //true
a.hasOwnProperty('b') //true
c.hasOwnProperty('a') //true
c.hasOwnProperty('b') //false

Разница? Зависит от контекста, а так: в первом случае вы явно указали свойство объекта (класса) A, во втором случае вы добавили это свойство в уже готовый объект (класс).
При создании своих объектов (классов), обычно, прозрачнее использовать первый способ.
«prototype» же удобнее, когда вы дополняете уже существующий объект (класс).