Поиск…
замечания
Конструкторские функции на самом деле являются просто регулярными функциями, в них нет ничего особенного. Это только new ключевое слово вызывает особое поведение, показанное в приведенных выше примерах. Функции конструктора по-прежнему можно вызвать как регулярную функцию, и в этом случае вам нужно будет привязать this значение явно.
Объявление функции-конструктора
Функции конструктора - это функции, предназначенные для создания нового объекта. Внутри функции-конструктора ключевое слово this относится к вновь созданному объекту, которому могут быть присвоены значения. Функции конструктора автоматически возвращают этот новый объект.
function Cat(name) {
this.name = name;
this.sound = "Meow";
}
Функции конструктора вызываются с помощью new ключевого слова:
let cat = new Cat("Tom");
cat.sound; // Returns "Meow"
Конструкторские функции также имеют свойство prototype которое указывает на объект, свойства которого автоматически унаследованы всеми объектами, созданными с помощью этого конструктора:
Cat.prototype.speak = function() {
console.log(this.sound);
}
cat.speak(); // Outputs "Meow" to the console
Объекты, созданные конструкторскими функциями, также имеют специальное свойство на свой прототип, называемый constructor , который указывает на функцию, используемую для их создания:
cat.constructor // Returns the `Cat` function
Объекты, созданные конструкторскими функциями, также считаются «экземплярами» функции-конструктора оператором instanceof :
cat instanceof Cat // Returns "true"