Maison >interface Web >js tutoriel >Introduction aux trois rôles des fonctions en js

Introduction aux trois rôles des fonctions en js

零下一度
零下一度original
2017-06-29 09:41:591716parcourir

Remarque : Function.prototype est la valeur du type de données de fonction, mais les opérations associées sont exactement les mêmes qu'avant ->Vide/anonyme

La fonction elle-même aura également quelques propriétés qui lui sont propres :

longueur : le nombre de paramètres formels

nom : Nom de la fonction "Fn"

prototype de classe prototype, les méthodes définies sur le prototype sont toutes des méthodes publiques de l'instance de classe Fn actuelle

__proto__ traite la fonction comme un objet ordinaire, pointant vers le prototype de la classe Function

La fonction est la connaissance la plus complexe et la plus importante dans tout le JS :

1. Une fonction a de multiples aspects :

 "Fonction ordinaire" : C'est une fonction ordinaire en elle-même. Lors de l'exécution, une portée privée (fermeture) sera formée, une affectation formelle des paramètres, une pré-interprétation, l'exécution du code et la mémoire de la pile sera détruite/non détruite une fois l'exécution terminée

 "class" : Il possède sa propre instance, et possède également un attribut appelé prototype qui est son propre prototype. Ses instances peuvent pointer vers son propre prototype

<.>

 "Objet ordinaire" : Tout comme obj dans var obj = {}, c'est un objet ordinaire, en tant qu'objet, il peut avoir ses propres attributs privés, et il peut également être trouvé. via __proto__ Function.prototype

Il n'y a pas de relation nécessaire entre ces trois.

     function Fn(){var num = 500;this.x = 100;
        }
        Fn.prototype.getX = function(){
            console.log(this.x)
        }
        Fn.aaa = 1000;var f = new Fn;
        f.num //undefinedf.aaa//undefinedvar res = Fn();
        res//undefinedFn.aaa//1000

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!

Déclaration:
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