Что такое функция конструктор и что она делает?
Конструктор класса — это функция, которая создает класс объектов, или функция, позволяющая очень легко создавать несколько экземпляров класса. С технической точки зрения функция конструктора похожа на обычную функцию, но
- Функция конструктора класса начинается с заглавной буквы. Лучше всего писать имя функции-конструктора с заглавной буквы.
- Функция конструктора класса должна выполняться с новым оператором.
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, она выполняет следующие шаги:
- Новый пустой объект создается и назначается этому.
- Выполняется тело функции. Обычно он модифицирует это, добавляет к нему новые свойства.
- Значение 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 г.