Давайте сначала иметь мини -программу простого объекта прототипа конструктора+
Функция createObj (uname, uage) {this.username = uname; }В этой программе нет проблем, но это очень избыточно . :
CreateObj.prototype = {showUserage: function () {return this.userage;}, showusername: function () {return this.username; );Тем не менее, написание этого объекта прототипа принадлежит объекту прототипа по умолчанию CreateOBJ.
Прежде чем переписать, конструктор указывает на CreateOBJ
Функция createObj (uname, uage) {this.username = uname; } console.log (createObj.prototype.constructor === createObj);После переписывания Constructor указывает на возражение
CreateObj.prototype = {showUserage: function () {return this.userage;}, showusername: function () {return this.username; .Constructor === Object);Следовательно, конструктор не может точно идентифицировать объект, потому что он будет изменен
Процедуры, которые мы писали ранее, в основном расширяются на объекте прототипа (прототип), а затем созданы объекты.
Может ли объект экземпляра вызывать расширение обычно?
Function createObj (uname, uage) {this.username = uname; } console.log (obj1.showusername ());Его можно назвать обычно, но если объект прототипа переписан, он не будет вызван
Функция CreateObj (uname, uage) {this.username = uname; ;Потому что после переписывания объекта прототипа он создается перед переписыванием, поэтому неявный прототип экземпляра __proto__ не будет указывать на объект переписывания прототипа, поэтому вы не будете вызывать другую проблему. Прототип, существуют типы цитат на объекте (прототип), и будьте осторожны, поскольку несколько экземпляров совместно используют объект прототипа, если существует экземпляр, который изменяет значение типа ссылки, все другие экземпляры получат результат после изменять.
Function createObj () {} createObj.prototype = {name: 'ghostwu', навыки: ['php', 'javascript', 'linux']}; Python ');Функция совместного использования прототипа может быть удобной для расширения некоторых методов для некоторых встроенных объектов, таких как массив, чтобы повторить
Array.prototype.unique = function () {var res = []; = - 1) {res.push (this [i]);}} return res;} var anrr = [10, 20, 30, 30, 20, 40, 20]; ; // 10, 20, 30, 40Однако не распространяйте метод на встроенных объектах случайно.
Выше всего содержимое этой статьи.