В JavaScript существует ключевое слово new
, которое может вызвать затруднения при первом знакомстве. Особенно это касается тех, кто считает, что JavaScript не является объектно-ориентированным языком программирования.
Пример проблемы
Допустим, есть функция-конструктор Person
, которая представляет собой модель человека.
function Person(name, age) { this.name = name; this.age = age; }
Если функция вызывается без new
, то this
будет ссылаться на глобальный объект (в браузере это window
). Это может привести к нежелательным последствиям, таким как переопределение глобальных переменных.
Person('John', 25); // 'this' ссылается на глобальный объект console.log(window.name); // 'John' console.log(window.age); // 25
Решение проблемы
Ключевое слово new
в JavaScript используется для создания нового экземпляра объекта. В данном случае, new
гарантирует, что this
внутри функции-конструктора будет ссылаться на новый объект.
var john = new Person('John', 25); console.log(john.name); // 'John' console.log(john.age); // 25
Таким образом, ключевое слово new
позволяет безопасно создавать новые объекты без риска переопределения глобальных переменных.
Когда использовать ‘new’, а когда нет?
Ключевое слово new
должно использоваться при вызове функций-конструкторов — это функции, которые предназначены для создания новых объектов.
Если функция не предназначена для создания объектов (например, она предназначена для выполнения определенной операции и возвращает результат), то new
использовать не нужно.
Заключение
Ключевое слово new
в JavaScript является важным инструментом, который позволяет создавать новые объекты. Оно гарантирует, что при создании объекта не будет переопределены глобальные переменные, что делает код более безопасным и предсказуемым.
Добавить комментарий