Что такое функция конструктор и что она делает?

Конструктор класса — это функция, которая создает класс объектов, или функция, позволяющая очень легко создавать несколько экземпляров класса. С технической точки зрения функция конструктора похожа на обычную функцию, но

  1. Функция конструктора класса начинается с заглавной буквы. Лучше всего писать имя функции-конструктора с заглавной буквы.
  2. Функция конструктора класса должна выполняться с новым оператором.
function User(firstName,lastName,age,gender)
{ 
this.firstName=firstName;
 this.lastName=lastName; 
this.age=age; this.gender=gender; 
} 
var user1=new User('Sagar','Jaybhay',30,'Male');
 console.log(user1);

Когда функция выполняется с new, она выполняет следующие шаги:

  1. Новый пустой объект создается и назначается этому.
  2. Выполняется тело функции. Обычно он модифицирует это, добавляет к нему новые свойства.
  3. Значение this возвращается.

Объект-прототип

Как использовать объект-прототип с функцией конструктор?

Прототип используется с функцией конструктора для добавления свойств и функций, которые связаны с объектом, который мы создали с помощью функции конструктора.

Ниже приведена наша функция-конструктор.

function User(firstName,lastName,age,gender)
{ 
this.firstName=firstName; 
this.lastName=lastName; 
this.age=age; 
this.gender=gender; 
}

мы создаем объект с помощью функции конструктора.

var user1=new User('Sagar','Jaybhay',30,'Male');

Теперь мы хотим добавить свойство домена электронной почты в нашу функцию-конструктор, и мы собираемся сделать это следующим образом.

User.prototype.emailDomain="@google.com";

В этом домене электронной почты доступен для всех объектов, которые мы создаем. Чтобы получить доступ к этому, используйте приведенный ниже код.

console.log(user1.__proto__.emailDomain)

Но если вы хотите получить доступ к свойству с помощью свойства, вы можете напрямую использовать свойство, как показано ниже.

user1.emailDomain

Это означает, что когда вы хотите добавить свойство или функцию после объявления функции конструктора и хотите, чтобы все объекты получили это свойство и функцию, вы можете использовать прототип для добавления функции и свойства.

Функция конструктора и объект-прототип в JavaScript

Теперь, используя прототип, мы можем добавить функцию к этой функции-конструктору. Синтаксис этой функции, как показано ниже

User.prototype.getEmailInfo=function() 
{ return this.firstName+"."+this.lastName+ this.emailDomain; }

Чтобы получить значение идентификатора электронной почты, мы используем объект user1, созданный выше. И, используя имя функции, мы вызываем это, и на выходе мы получаем

console.log(user1.getEmailInfo())
[email protected] //output

Первоначально опубликовано на https://sagarjaybhay.net 13 сентября 2019 г.