Maison > interface Web > js tutoriel > le corps du texte

Comment une sous-classe JS utilise-t-elle Object.getPrototypeOf pour appeler la classe parent ?

零到壹度
Libérer: 2018-03-22 11:46:09
original
1734 Les gens l'ont consulté

Cette fois, je vais vous montrer comment utiliser Object.getPrototypeOf pour appeler la classe parent dans une sous-classe JS. Suivons les traces de l'éditeur et jetons un coup d'œil.

Chaque fonction possède un attribut de prototype, appelé prototype. Chaque objet possède également un prototype, Firefox/Safari/Chrome/Opera Il est accessible via __proto__ et aucune interface pertinente n'est fournie dans IE6/7/8.

function Person(){
this.method1 = function(){}
}
Person.prototype.method2 = function(){}
function Man(){}
Man.prototype = new Person();
Man.prototype.m1 = function(){}
Man.prototype.m2 = function(){}
var m = new Man();
for(var a in m.__proto__){
alert(a);
}
Copier après la connexion

définit la classe parent Person et la sous-classe Man. créez un objet Man et imprimez toutes les propriétés.

ECMAScript La V5 ajoute une méthode statique getPrototypeOf à Object (Firefox/Chrome l'a implémenté ), utilisé pour obtenir le prototype de l'objet. Il peut être utilisé pour imiter le super de Java.

function Person(){
this.method1 = function(){alert(1)}
}
Person.prototype.method2 = function(){alert(2);}
function Man(){
this.m1 = function(){
Object.getPrototypeOf(this).method1();
}
}
Man.prototype = new Person();//原型继承
Man.prototype.m2 = function(){
Object.getPrototypeOf(this).method2();
}
var man = new Man();
man.m1();
man.m2();
Copier après la connexion


La méthode m1 accrochée à ceci dans la sous-classe Man appelle la méthode1 accrochée à cela dans la classe parent Person, et la méthode m2 accrochée au prototype appelle méthode2 sur le prototype de la classe parent.

Il ressort de ce qui précède que le prototype d'objet inclut non seulement les attributs de son prototype de constructeur, mais inclut également les attributs de celui-ci dans le constructeur. Bien sûr, pour des raisons de contexte en JavaScript, cela dans la classe parent ne peut pas être automatiquement converti dans la sous-classe, et certaines compétences sont nécessaires pour le compléter.

Voici comment ça marche en Java

package bao1;
class Person {
    private String name;
    Person(String name) {
      this.name = name;
  }
  public void method1() {
      System.out.println(this.name);
    }
  }
      class Man extends Person{
        Man(String name) {
          super(name);
    }
    public void m1() {
       super.method1();
      }
    }
     public class Test 
     {public static void main(String[] args) {
     Man man1 = new Man("Jack");man1.m1();
    }
  }
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
js
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!