В JavaScript нет классов, только объекты. Первый метод создания объекта часто называется созданным или созданным объектом.
function availItem(xs, s, m, l, xl) {
this.xs = xs;
this.s = s;
this.m = m;
this.l = l;
this.xl = xl;
}
Объекты, определенные таким образом, могут быть созданы с помощью оператора new
var item = new availItem(...);
Второй метод создает объект с использованием буквенной нотации объекта, которая почти, но не совсем JSON. В частности, оператор new
не работает с литералами объекта, поскольку у них нет конструктора (функции).
Если вы хотите использовать буквенное обозначение объекта, я предлагаю вам следовать шаблону модуля ( критика для баланса)
var availItem = availItem(xs, s, m, l, xl) {
var my = {
xs: xs,
s: s,
m: m,
l: l,
xl: xl
};
// Add any methods that may be necessary
my.method1 = function() { ... };
// etc
return my;
};
...
var item = availItem(...);
Непонятно, почему вы хотите использовать оба метода для одной и той же вещи.