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

Explication détaillée de ceci dans Nodejs_node.js

WBOY
Libérer: 2016-05-16 15:07:56
original
1595 Les gens l'ont consulté

Le contenu suivant concerne cela dans nodejs plutôt que cela en javascript. Ceci dans nodejs est différent de cela en javascript dans le navigateur.

ce

en global
console.log(this); {}
this.num = 10;
console.log(this.num); 10
console.log(global.num); undefined
Copier après la connexion

Ceci dans le monde global est un objet vide par défaut. Et dans le global, cela n’a aucun rapport avec l’objet global, alors à qui exactement cela pointe-t-il dans le global ? Nous expliquerons cela dans la seconde moitié de ce chapitre.

ce

dans une fonction
function fn(){
  this.num = 10;
}
fn();
console.log(this); {}
console.log(this.num); undefined
console.log(global.num); 10

Copier après la connexion

Ceci dans la fonction pointe vers l'objet global, qui n'est pas le même objet que celui-ci dans le global. En termes simples, la variable que vous définissez via ceci dans la fonction équivaut à ajouter un attribut à global. c'est la même chose que global. Le "ceci" dans "n'a rien à voir avec ça".

Si vous n'y croyez pas, regardez le code ci-dessous pour le prouver.

function fn(){
  function fn2(){
    this.age = 18;
  }
  fn2();
  console.log(this); global
  console.log(this.age); 18
  console.log(global.age); 18
}
fn();

Copier après la connexion

C'est vrai, dans la fonction, cela pointe vers global.

this

dans le constructeur
function Fn(){
  this.num = 998;
}
var fn = new Fn();
console.log(fn.num); 998
console.log(global.num); undefined
Copier après la connexion

Dans le constructeur, cela pointe vers son instance, pas globale.

Nous pouvons maintenant en parler dans un contexte global. En parlant de cela dans un contexte global, cela a en fait quelque chose à voir avec la portée dans Nodejs. Si vous voulez en savoir plus sur la portée dans Nodejs, vous pouvez lire le document. discussion sur la portée dans le problème de portée de Nodejs. cet article.

Revenons au sujet, ceci dans le contexte global pointe vers module.exports.

this.num = 10;
console.log(module.exports); {num:10}
console.log(module.exports.num);
Copier après la connexion

Pourquoi cela pointe-t-il vers module.exports dans la vue globale ? Ensuite, vous devez d'abord en savoir plus sur module.exports. Pour le moment, nous en apprendrons d'abord sur le module si nous en avons l'occasion. plus tard

Étiquettes associées:
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