Синтаксис JavaScript Справочник JavaScript JSON Коды клавиш События Строгий режим

JavaScript: Оператор new

Оператор Тип оператора А О Типы значений
new … () new (со списком аргументов) отсутствует 1 конструктор → объект
new … new (без аргументов) справа налево 1 конструктор → объект

Оператор new используется для создания объектов. Операндом этого оператора должна быть функция. Функция, которая создаётся специально для работы с оператором new, называется конструктором. Конструктор используется для инициализации нового созданного объекта:

function Obj() {
  this.x = 5;
}

var o = new Obj();
alert(o.x);   // 5

Работает это всё (оператор new с конструктором) следующим образом: встречая оператор new интерпретатор создаёт новый пустой объект, затем он вызывает конструктор, и передаёт ему новый созданный объект в качестве значения ключевого слова this. Внутри конструктора происходит инициализация свойств вновь созданного объекта. После того, как объект создан и инициализарован, оператор new возвращает созданный объект.

Функция, которая создаётся специально, чтобы играть роль конструктора, не должна возвращать значение с помощью инструкции return. Однако, если внутри конструктора всё же используется инструкция return, возвращаемое значение определяется по следующему правилу:

function Obj(num) {
  this.x = num;
  return {y:10};
}

function Obj2(num) {
  this.x = num;
  return 100;
}

var o = new Obj(5);
var o2 = new Obj2(5);

alert(o.y);    // 10
alert(o2.x);   // 5

Если конструктору не передаётся никаких аргументов, скобки можно не ставить:

var o = new Object;

Примечание: чтобы отличать в коде обычные функции от конструкторов, имена конструкторов обычно начинают с заглавной буквы.

Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011 – 2024 © puzzleweb.ru | razumnikum.ru

Реклама на сайте | puzinfo@puzzleweb.ru | ruen