Les prototypes et les fermetures sont les plus courants, les plus difficiles à comprendre et les plus facilement considérés comme deux parties du problème en JavaScript. Bien sûr, ils ont également leurs extensions, telles que les chaînes de portée, l'héritage, etc. Récemment, je les ai également lues de diverses manières, je les ai tous renversées et j'ai enregistré mes propres expériences. L'écriture rendra toujours ma compréhension plus profonde. (Cela n'a rien à voir avec le titre, alors j'ai soupiré. Chaque fois que je sens que je comprends, je gagne encore beaucoup de récompenses après l'avoir lu)
Parlons d'abord du nouveau mot clé dans JavaScript. Habituellement, nous l'utilisons pour créer un objet d'instance d'une classe. Dans JavaScript, après avoir instancié l'objet, nous héritons des attributs et des méthodes de la classe. Voyons-le à travers le code
fonction personne (name) {this.name = name;} personne.age = "23"; personne.prototype.say = function () {console.log ("je suis" + this.name);}; var personne = new personne ("wang fang"); Console.log (Person.Name, // Wang Fang Person.Height // Undefined); personne.say (); // je suis wang fang console.log (personne.name, // personne personne.age // 23); personne.say (); //Person.say n'est pas une fonctionJetons un coup d'œil à cette ligne
var personne = new personne ("wang fang");
Qu'a fait le nouveau? Ce qui suit est ce que fait le travail de JS Engine
var obj = {}; obj .__ proto__ = personne.prototype; var result = personne.call (obj, "wang fang"); return typeof result === 'obj'? Résultat: OBJ;1. Créez d'abord un nouvel objet
2.
3. Appelez la fonction personne dans l'espace d'exécution de l'objet OBJ et passez le paramètre "Wang Fang". Il est équivalent à var result = obj.person ("wang fang"). Une fois cette phrase exécutée, OBJ génère le nom d'attribut et le affecte à "Wang Fang".
4. Déterminez la valeur de retour. S'il n'y a pas de valeur de retour ou si une valeur non objet est renvoyée, renvoyez obj. Sinon, la valeur de retour est renvoyée comme un nouvel objet (un peu torsion, opérateur ternaire, veuillez le vérifier par vous-même)
Résumer:
La fonction principale du nouveau mot-clé de JavaScript est l'héritage, comme mentionné dans l'exemple ci-dessus, mais n'oubliez pas que cette personne est une fonction, tandis que la personne est un objet. Quant à la différence entre les fonctions et les objets, je l'écrirai à nouveau si j'ai le temps.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.