В чем разница между «новым классом» и «новым классом ()» в javascript

1

function ClassA(){
  this.value = 5;
}

var obj1 = new ClassA;
var obj2 = new ClassA();

console.log(obj1.value);
console.log(obj2.value);

Оба печатают "5" в консоли. Какая разница между двумя способами (кроме включения аргументов для конструктора)?

  • 0
    Ответы, которые вы получили, верны, но если вас интересуют полные детали, это поведение описано в спецификации .
Теги:

2 ответа

4
Лучший ответ

Скобки являются необязательными - если у вас нет каких-либо параметров конструктора, они могут быть опущены.

Как ни странно, точки с запятой также (иногда) необязательны благодаря автоматической вставке с запятой (source, более). Это вызвало длительные дебаты в начале этого года и вызвало ответ от Дуглас Крокфорд (JSON/JSLint изобретатель, гуру JS).

1

Нет никакой разницы.

Если аргументов нет, и существует new, то скобки необязательны.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню