Давайте сначала посмотрим на следующий код:
Функциональная машина (Ecode, Horse Power) {this.ecode = ecode; this.horsepower = Horsepower;} function showme () {alert (this.name + "" + this.ecode + "" + this.horsepower);} var machine = new Machine ("code1", 15); machine.name = "machine1"; machine.showme = showme; machine.showme ();В этом фрагменте кода, после создания объекта машины, функция Showme становится методом машины машины через машину через машину .showme = showme;
Тем не менее, это зависит от двух вышеупомянутых функций (одна из них является конструктором объекта, а другая - обычный метод), которые не имеют никакого отношения друг к другу. Такой код не такой «элегантный», поэтому есть прототип.
// Машина функциональной машины (Ecode, Horsepower) {this.ecode = ecode; this.horsepower = лошадиные силы;} // Обратите особое внимание на это предложение. Machine.Prototype инициализируется, когда он инициализируется в первый раз. // При вызове машины в качестве конструктора значение двигателя не будет снова изменять машину. }Используя приведенный выше код, все объекты машины имеют метод Showme.
Но обратите особое внимание на:
Прототип - это только экземпляры, а не объекты класса. (В JS сам класс является объектом), так что machine.showme (); сообщит об ошибке, потому что у объекта машины нет метода Showme.
Итак, как мы используем метод Showme? Новый экземпляр машины должен быть создан, и только экземпляр машины будет иметь этот метод.
var machine = new Machine ("code1", 15); machine.name = "machine1"; machine.showme (); // Выходная машина1 CODE1 15.С прототипом нам легче внедрить отношения наследования. Например, если я сейчас напишу класс автомобилей, мне нужно унаследовать текущий класс машины, и мне просто нужно написать следующий код:
// Функциональный автомобиль (имя, Ecode, лошадиные силы) {this.name = name; // Расчет конструктора родительского класса, так что автомобильный объект имеет Ecode и Heorpower Attributes Machine.call (This, Ecode, Horseplow);} // Прототип CAR указывает на машину, так что автомобильный объект обладает любыми свойствами и методами прототипа машины, таких как ShowMecar.Prototype = New Machine ();Аннотация здесь очень ясна, поэтому я не буду вдаваться в подробности.
Затем мы можем создать новый объект, чтобы проверить его:
// Создать новый объект класса автомобиля. var xiali = new Car ("xiali", "aaa", 15); alert (xiali.engine); Xiali.showme ();Выше выше является основным применением прототипа, но он также является наиболее важным применением прототипа.
Использование прототипа, которым вы, мастер, будут иметь более глубокое понимание конструкции и наследства объектов в будущем.
Чтобы просмотреть больше синтаксиса JavaScript, вы можете следовать: «Справочный учебник JavaScript» и «Руководство по стилю кода JavaScript». Я также надеюсь, что все будут поддерживать Wulin.com больше.