Конструктор создает объект
function Person () { } var person = new Person(); person.name = 'Aditya'; console.log(person.name) // Aditya
Person — это конструктор, мы используем new для создания экземпляра объекта person.
прототип
Каждая функция имеет свойство прототипа.
Каждый объект JavaScript (кроме null) будет связан с другим объектом при его создании. Этот объект мы называем прототипом, и каждый объект «наследует» свойства прототипа.
function Person () { } //Although it is written in a comment, //but you should pay attention: // prototype is a property that only functions have. Person.prototype.name = 'Aditya' ; var person1 = new Person(); var person2 = new Person(); console .log(person1.name) // Aditya console .log(person2.name) // Aditya
прото
Каждый объект JavaScript (кроме null) имеет свойство с именем proto , которое указывает на прототип объекта.
function Person () { } var person = new Person(); console.log(person.__proto__ === Person.prototype); // true
конструктор
У каждого прототипа есть атрибут конструктора, указывающий на соответствующий экземпляр конструктора. Прототип указывает на конструктор.
function Person() { } console.log(Person === Person.prototype.constructor); // true function Person() { } var person = new Person (); console .log(person.__proto__ == Person.prototype) // true console .log(Person.prototype.constructor == Person) // true console .log( Object .getPrototypeOf(person) === Person.prototype) // true
Примеры и прототипы
function Person () { } Person.prototype.name = 'Aditya'; var person = new Person (); person.name = 'Daisy'; console.log(person.name) // Daisy delete person.name; console.log(person.name) // Aditya
В этом примере мы добавили атрибут name к экземпляру объекта person. Когда мы печатаем person.name, результатом, естественно, будет Дейзи. Но когда мы удалили атрибут имени человека, чтение person.name не обнаружит, что атрибут имени — это человек. От человека из объекта-прототипа человека proto, который является человеком. Прототип Посмотрите, к счастью, мы нашли атрибут имени, в результате получается Адитья.