Каждая функция Javascript имеет атрибут прототипа (объект JavaScript не имеет этого атрибута). Этот атрибут относится к объекту, который является объектом прототипа. JavaScript позволяет нам изменить этот объект прототипа.
Есть 2 способа изменения:
Метод 1: Добавьте свойства или методы в исходный объект прототипа
Функция Person () {} Person.prototype.add = function () {alert (this.name);}; person.prototype.name = "aty"; var p1 = new Person (); p1.add (); // atyМетод 2: Перепишите (перезаписать) объект прототипа
function person () {} person.prototype = {add: function () {alert (this.name);}, имя: "aty"} var p2 = new Person (); p2.add (); // atyВы можете видеть, что два вышеупомянутые методы могут изменить прототип, так в чем разница? Какой метод является рекомендуемым методом?
function person () {} function Animal () {} var person = new Person (); var Animal = new Animal (); // Модифицировать прототип Person.prototype.say = function () {alert ("person");} // Модифицировать прототип животного. PersonAnimal.say (); // uncaught typeerror: не определено не функцияЕсли вы сначала создаете объект, а затем измените прототип, то если вы используете метод 1, созданный вами объект может правильно получить доступ к модифицированному прототипу; Если вы используете метод 2, созданный вами объект не может получить доступ к модифицированному прототипу. С этой точки зрения, очевидно, метод 1 лучше, чем метод 2. Почему это происходит?
function person () {} function Animal () {} var person = new Person (); var Animal = new Animal (); Alert (Person .__ Proto__ === Person.prototype); // trueAlert (Animal .__ Proto__ === Animal.prototype); // true // modify prototype prototype. Animal.prototype = {say: function () {alert ("person");}} alert (человек .__ Proto__ === Person.prototype); // trueAlert (Animal .__ Proto__ === Animal.prototype); // НеверноОчевидно, что это очень похоже на «изменение ссылки» и «изменение объекта, указанного по ссылке» в Java, и эффект одинаков.
Приведенное выше подробное объяснение разницы между модификацией и переписыванием (перезапись) прототипа JavaScript - это весь контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.