Использовать new в Javascript - то же самое, что не использовать его?

Рассмотрим этот код:

function klass( z ) {
    this.a = z;
    return this;
}

var b = klass( 5 );
var c = new klass( 9 );

Когда я запускаю его в Chrome и проверяю консоль, b оказывается, имеет тип DOMWindow , а c имеет тип класс .

Хотя оба имеют свойство a, фактически оба являются экземпляром класса .

  • Используете или не используете новое, то же самое?
  • То же самое в этом примере, но отличается в других ситуациях?
  • Есть ли различия в эффективности или поведении?
6
задан Petruza 23 December 2011 в 02:57
поделиться