Javascript.RU

new

Синтаксис

objectName = new objectType(param1 [,param2] ...[,paramN])

Аргументы

objectName
Name of the new object instance.

objectType
Тип объекта. Должен быть функцией, которая станет конструктором
param1...paramN
Аргументы для функции-конструктора

Описание, примеры

Оператор new создает новый объект, используя функцию-конструктор, которая может быть как встроенной в javascript (Date, String), так и определенной пользователем.

Создание пользовательского объекта требует двух шагов:

  1. Объявить функцию-конструктор
  2. Инстанциировать (сделать экземпляр объекта) вызовом new

После создания вы можете добавить к объекту любые свойства и удалить - почти любые, кроме ряда свойств встроенных javascript-объектов.

Оператор new также задает прототип объекта равным свойству prototype функции-конструктора. Подробнее - читайте про наследование в javascript.

См. также


Автор: lancelot (не зарегистрирован), дата: 20 июля, 2010 - 11:36
#permalink

А на что указывает this когда функция вызывается через оператор new? на global object?


Автор: nephilim (не зарегистрирован), дата: 20 ноября, 2011 - 20:00
#permalink

указывает на поточный (данный) объект


Автор: Walter Meier, дата: 27 августа, 2010 - 20:17
#permalink

Name of the new object instance?


Автор: Amir, дата: 12 августа, 2011 - 17:54
#permalink

Можно было сделать несколько примеров, а то переходить по ссылкам ради одного не совсем понятного примера!!!


Автор: Гость (не зарегистрирован), дата: 14 декабря, 2012 - 12:56
#permalink
// создаем функцию конструктор
function Foo(name){
 this.name = name;
}

// this внутри функции ссылается на window (даже при замыкании)
Foo("js");

// в результате имеем
name == "js"; // true

// другими словами
window.name == "js" // true

// если создать экземпляр класса Foo, то this будет ссылаться на Foo
var MyFoo = new Foo("css");

name == "js" // true
window.name == "css" // false
MyFoo.name == "css" // true

Автор: number Zero (не зарегистрирован), дата: 21 июня, 2014 - 22:22
#permalink

Если конструктор возвращает объект, то оператор new вернет именно его:

function X() {
	this.a = 1;
	return {}; // пустой объект
}
alert(JSON.stringify(X())); // {}
alert(JSON.stringify(new X())); // {}

function Y() {
	this.a = 1;
	return 2; // примитивное значение (не объект)
}
alert(JSON.stringify(Y())); // 2
alert(JSON.stringify(new Y())); // {"a":1}

function Z() {
	this.a = 1;
	return new Number(2); // объект типа «число»
}
alert(JSON.stringify(Z())); // 2
alert(JSON.stringify(new Z())); // 2

Автор: Гость (не зарегистрирован), дата: 1 июня, 2015 - 03:49
#permalink

Правильно ли я понял, что использование оператора new влияет лишь на тип возвращаемого значения ( и только в частных случаях ) ?


Автор: ti (не зарегистрирован), дата: 5 марта, 2021 - 08:14
#permalink

Кто может подсказать почему следующий код работает и что это значит?

new (1, 2, 3, 0, function() {})

Автор: Гость (не зарегистрирован), дата: 13 апреля, 2022 - 08:55
#permalink

Автор: Гость (не зарегистрирован), дата: 13 апреля, 2022 - 09:43
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 00:20
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 13:27
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 14:00
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 14:02
#permalink

Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
18 + 2 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum