Определение и использование
Свойство конструктора возвращает ссылку на функцию массива, которая создала этот объект.
грамматика
Object.constructor
Конструктор, конструктор, мы все знакомы с этим именем. Конструктор всегда указывает на конструктор, который создает текущий объект.
Здесь следует отметить, что каждая функция имеет свойство прототипа, и конструктор этого прототипа указывает на эту функцию. В настоящее время, когда мы модифицируем прототип этой функции, произошла авария. нравиться
Функция человека (имя, возраст) {this.name = name; this.age = age;} person.prototype.getage = function () {return this.age;} person.prototype.getName = function () {return this.name;} var p = new Person ("nicholas", 18); console.log (p.constructor); // человек (имя, возраст) console.log (p.getage ()); //18console.log (p.getName ()); // НиколасНо если так:
Функция Person (имя, возраст) {this.name = name; this.age = age;} person.prototype = {getName: function () {return this.name;}, getage: function () {return this.age;}} var p = new Person ("nicholas", 18); console.log (p.contructuctor); // object () console.log (p.getage ()); //18console.log (p.getName ()); // НиколасВ результате конструктор изменился.
Причина в том, что сам прототип также является объектом, а приведенный выше код эквивалентен на
Person.prototype = new Object ({getName: function () {return this.name;}, getage: function () {return this.age;}});Поскольку конструктор всегда указывает на конструктор, который создает текущий объект, нетрудно понять, что приведенный выше код P.Constructor выводит объект.
Что мне делать, если конструктор после изменения прототипа и все еще хочет, чтобы он указывал на человека? Просто, просто присваивайте значение Person.prototype.constructor:
Person.prototype = {Constructor: Person, getName: function () {return this.name;}, getage: function () {return this.age;}}Выше приведено конструктор в JavaScript, введенный вам редактором. Я надеюсь, что это будет полезно для всех!