Maison >interface Web >js tutoriel >La différence entre les fonctions ordinaires Javascript et les constructeurs (explication détaillée combinée avec du code)

La différence entre les fonctions ordinaires Javascript et les constructeurs (explication détaillée combinée avec du code)

亚连
亚连original
2018-05-19 14:22:512411parcourir

Cet article présente principalement des informations pertinentes sur la différence entre les fonctions ordinaires et les constructeurs en Javascript. Les amis qui en ont besoin peuvent se référer à

La différence entre les fonctions ordinaires et les constructeurs

<.>En termes de règles de dénomination, les constructeurs ont généralement la première lettre en majuscule et les fonctions ordinaires suivent la méthode de dénomination en casse chameau.

Lorsque la fonction est appelée :

function fn() { }

Constructeur  : 1. new fn( ) 2. Un nouvel objet sera créé à l'intérieur du constructeur, c'est-à-dire une instance de f
3. Ceci à l'intérieur de la fonction pointe vers l'instance nouvellement créée de f
4. La valeur de retour par défaut est f Exemple

Fonction ordinaire  : 1. fn() 2. Aucun nouvel objet ne sera créé à l'intérieur de la fonction appelante
3. Ceci à l'intérieur de la fonction pointe vers l'objet de la fonction appelante ( S'il n'y a pas d'appel d'objet, la valeur par défaut est window)
            4. La valeur de retour est déterminée par l'instruction return

La valeur de retour du constructeur :

Là est une valeur de retour par défaut, l'objet nouvellement créé (Instance);

Lors de l'ajout manuel de la valeur de retour (instruction return):

1. La valeur de retour est un type de données de base --> la valeur de retour est toujours l'objet (instance) nouvellement créé

      2. La valeur de retour est un type de données complexe (objet) --> La vraie valeur de retour est cet objet

Regardez une question d'entretien courante

<script>
  function foo() {
    var f2 = new foo2();
    console.log(f2);  //{a: 3}
    console.log(this); //window
    return true;
  }
  function foo2() {
    console.log(this); //foo2类型的对象 不是foo2函数
//    this.age = 30;
    return {a: 3};
  }
  var f1 = foo();
  console.log(f1); // true
</script>
Ce qui précède est ce que j'ai compilé pour vous. Oui, j'espère que cela sera utile à tout le monde à l'avenir.

Articles connexes :

nodejs+implémentation express des détails du cas de téléchargement de fichiers

JS génère une liste de temps et sortie

webpack.config.jscas d'utilisation du paramètre

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