Ни один из них не совсем прав, хотя второй может сработать, но на самом деле это не объект, скорее, как синглтон (но странным образом). Вот пример класса с конструктором:
// Class & Constructor definition
function Rectangle(w,h) {
this.width = w;
this.height = h;
}
// Now your class methods go on the prototype object
Rectangle.prototype.area = function() {
return this.width * this.height;
}
Теперь для использования этого класса:
var myRect = new Rectangle(3,4);
myRect.area();
Вы также можете определить класс, сохранив «конструктор» в var, используя анонимные функции вместо именованных функций:
// Class & Constructor definition
var Rectangle = function(w,h) {
this.width = w;
this.height = h;
}
// Now your class methods go on the prototype object
Rectangle.prototype.area = function() {
return this.width * this.height;
}