Страницы

Поиск по вопросам

пятница, 5 октября 2018 г.

В чём разница между Array и new Array?

Подскажите, в чем разница между кодом var a = Array(10) и var a = new Array(10), и почему оба варианта работают одинаково?


Ответ

new создаёт новый объект (инстанс класса) и передаёт его вызываемой функции в качестве this. Но некоторые функции умеют сами определять, что их вызвали без new и всё равно отрабатывать как конструктор. Array - одна из них, поэтому разницы нет.
Если хочется самому создать подобный конструктор, то вот один из способов:
function Smth(val) { if (!(this instanceof Smth)) { return new Smth(val); }
this.val = val; }

Комментариев нет:

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