Поиск…
замечания
Конструкторские функции на самом деле являются просто регулярными функциями, в них нет ничего особенного. Это только 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"