Maison > interface Web > js tutoriel > Quelles sont les quatre fonctions des types de chaîne de prototypes, de fermeture, d'héritage, d'espace de noms et d'énumération dans js ?

Quelles sont les quatre fonctions des types de chaîne de prototypes, de fermeture, d'héritage, d'espace de noms et d'énumération dans js ?

青灯夜游
Libérer: 2019-01-29 13:12:33
avant
2639 Les gens l'ont consulté

Le contenu de cet article est de présenter la chaîne de prototypes en js, les quatre fonctions de type fermeture, héritage, espace de noms et énumération ? . Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

Chaîne de prototypes

Les objets JavaScript sont des "packages" dynamiques de propriétés (faisant référence à leurs propres propriétés). Les objets JavaScript ont une chaîne qui pointe vers un objet prototype. Lorsqu'il tente d'accéder à une propriété d'un objet, il recherche non seulement l'objet, mais également le prototype de l'objet et le prototype du prototype de l'objet, et recherche vers le haut jusqu'à ce qu'il trouve une propriété avec un nom correspondant. ou atteint le prototype en bout de chaîne.

Créer une cible pour copier la chaîne d'origine du prototype sans affecter la chaîne d'origine du prototype

var inherit = (function(){
    var F = function (){};
    return function (Target, Origin){
        F.prototype = Origin.prototype; 
        Target.prototype = new F();
        Target.prototype.constructor = Target;   //目标函数的原型的构造函数定义为目标函数
        Target.prototype.uber = Origin.prototype; //uber超类,指的是目标函数的最终原型为Orign的原型
        }
    }())
Copier après la connexion

Hériter

Généralement, les entreprises utilisent souvent l'exécution immédiate des fonctions d'écriture de fonctions, et appellent une fonction d'initialisation init()

La fonction d'appel dans callname() dans le code est de changer ce pointeur, changez le pointeur this de nom en this sous la fonction actuelle

Notez que vous devez utiliser return pour renvoyer la fonction

<script>
var init=(function(){
    var name ='辣鸡';
    function callname(){
        console.log(name);
        }
    return function(){
        callname();
        }
    }())
init();
</script>
Copier après la connexion

énumération :

var org={
    name:'智障',
    sex:'男',
    height:178
}
for ( var proto in org ){
    console.log(org.proto)
}
Copier après la connexion

Ceci s'imprimera trois fois indéfini, car proto sera considéré comme une propriété de l'objet à ce moment, vous devez donc changer org.proto dans le code de org[ proto], sinon il sera compris comme org['proto'] par défaut.

La sortie normale est la suivante, imprimez trois valeurs. Si vous souhaitez imprimer les attributs, directement console.log(proto)

Enumération des objets, trois méthodes :

pour dans -----> >1 instance de

Une instance de B

<.>Déterminer si l'objet A est construit par le constructeur de B

Donc la méthode d'identification des tableaux et des objets------- >1. instanceof 2. to String call 3.constructor

function Person(){}
var person = new Person();
Copier après la connexion

1) var obj={}

2) toString call

3) constructeur

var obj = {}

Voir s'il existe un prototype de B sur la chaîne prototype de l'objet A

2. hasOwnProperty

, déterminez s'il appartient à votre propre méthode, qui peut être exclue. Les méthodes du prototype __proto__

3, in

var org={
    name:'智障',
    sex:'男',
    height:178,
    __proto__:{
        lastName:'zhang'
        }
    }for(var prop in org){    if(org.hasOwnProperty( prop )){
    console.log(prop)
    }
}var obj={};
Copier après la connexion

types de situation in et hasOwnProperty, mais les méthodes du prototype existent également dans l'énumération des méthodes

Lorsque la fonction interne est enregistrée à l'extérieur, une fonction de fermeture sera générée. La fermeture empêchera la chaîne de portée d'origine d'être libérée, provoquant une fuite de mémoire

Les fermetures ont quatre fonctions :

1. Implémenter des variables publiques, par exemple : accumulateur

2. Peut être mis en cache (structure de stockage)

3. > 4. Développement modulaire pour éviter la pollution des variables globales (mode Saint Graal)

/Utiliser des fermetures pour définir des fonctions publiques et les rendre disponibles Accéder aux fonctions et variables privées. Cette méthode est également appelée le modèle de module (modèle Holy Grail)

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:
source:cnblogs.com
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