Latest web development tutorials
×

JavaScript cours

JavaScript cours JavaScript Brève introduction JavaScript usage JavaScript exportation JavaScript grammaire JavaScript Déclarations JavaScript note JavaScript variable JavaScript Types de données JavaScript Objets JavaScript fonction JavaScript portée JavaScript événement JavaScript chaîne JavaScript opérateurs JavaScript comparer JavaScript If...Else JavaScript switch JavaScript for JavaScript while JavaScript Break & Continue JavaScript typeof JavaScript Type de conversion JavaScript expressions régulières JavaScript erreur JavaScript debugging JavaScript ascenseur variable JavaScript Strict mode JavaScript utilisation inappropriée JavaScript Authentification Forms JavaScript Mots clés réservés JavaScript JSON JavaScript void JavaScript Spécification code

JS fonction

JavaScript Définition de la fonction JavaScript Arguments de la fonction JavaScript appel de fonction JavaScript fermetures

JS HTML DOM

DOM Brève introduction DOM HTML DOM CSS DOM événement DOM EventListener DOM élément

JS Tutorial avancée

JavaScript Objets JavaScript Number JavaScript String JavaScript Date JavaScript Array JavaScript Boolean JavaScript Math JavaScript RegExp Objets

JS Navigateur BOM

JavaScript Window JavaScript Window Screen JavaScript Window Location JavaScript Window History JavaScript Navigator JavaScript pop JavaScript événement Timed JavaScript Cookies

JS entrepôt

JavaScript entrepôt JavaScript test jQuery JavaScript test Prototype

JS Exemples

JavaScript Exemples JavaScript instance de l'objet JavaScript instance d'objet du navigateur JavaScript HTML DOM Exemples JavaScript résumé

JS Manuel de référence

JavaScript Objets HTML DOM Objets

JavaScript fermetures

variables JavaScript peuvent être variables locales ou globales.

Les variables privées peuvent être utilisées fermeture.


Variables globales

La fonction peut accéder à des variables définies par les fonctions internes, telles que ?:

Exemples

function myFunction () {
var a = 4;
revenir a * a;
}

Essayez »

La fonction peut également être accessible en dehors des fonctions définies par des variables telles que:

Exemples

var a = 4;
function myFunction () {
revenir a * a;
}

Essayez »

Un exemple de l'arrière, a est une variable globale.

Dans la page Web appartiennent à l'objet variable globale de la fenêtre.

Les variables globales peuvent être utilisées dans tous les scripts sur la page.

Dans le premier cas, a est une variable locale.

Les variables locales ne peuvent être utilisées pour définir son fonctionnement interne. Pour toute autre fonction ou le code de script ne sont pas disponibles.

Même les variables globales et locales du même nom, ils sont aussi deux variables différentes. Modifier un, il ne sera pas affecter la valeur de l'autre.

note Si vous ne déclarez pas une variable en utilisant le mot - clé var, alors il est une variable globale, même si elle est définie dans la fonction.


cycle de vie variable

Portée des variables globales sont globales, qui est, tout au long du programme JavaScript, les variables globales sont partout.

Dans la variable déclarée dans une fonction, ne fonctionne que dans la fonction. Ces variables sont locales, de portée locale; paramètre de la fonction est localisée, seulement dans le travail de la fonction.


Compteur Dilemma

Si vous voulez imaginer quelques statistiques numériques, et les compteurs sont disponibles dans toutes les fonctions.

Vous pouvez utiliser des variables globales, fonction définit le compteur est incrémenté:

Exemples

var compteur = 0;

fonction add () {
compteur + = 1;
}

ajouter ();
ajouter ();
ajouter ();

// Le compteur est maintenant 3

Essayez »

Le changement de valeur du compteur est survenu dans la mise en œuvre de la fonction add ().

Mais la question est, tout script sur la page peut changer le compteur, même s'il n'y a pas d'appel pour ajouter la fonction ().

Si je déclare une fonction dans le compteur, sinon appeler la fonction ne modifiera pas la valeur du compteur:

Exemples

fonction add () {
var compteur = 0;
compteur + = 1;
}

ajouter ();
ajouter ();
ajouter ();

// L'intention est à la sortie 3, mais il n'a pas, la sortie est 1!

Essayez »

Le code ci-dessus ne sortira pas correctement, chaque fois que je prends à ajouter la fonction (), le compteur est mis à 1.

fonction inline JavaScript peut résoudre ce problème.


fonctions imbriquées JavaScript

Toutes les fonctions peuvent accéder à des variables globales.

En fait, en JavaScript, toutes les fonctions peuvent y accéder à l'étage de la portée.

JavaScript prend en charge les fonctions imbriquées. La fonction imbriquée peut accéder à des variables sur la couche de fonction.

Dans cet exemple, la fonction imbriquée plus () peut accéder à la variable compteur de fonction parent:

Exemples

fonction add () {
var compteur = 0;
fonction plus () {compteur + = 1;}
PLUS ();
retour compteur;
}

Essayez »

Si nous pouvons accéder à la fonction ainsi que l' extérieur (), afin que nous puissions répondre à la détresse du compteur.

Nous devons également veiller à ce que compteur = 0 une seule fois.

Nous avons besoin de fermeture.


JavaScript fermetures

Rappelez-vous les appels de fonction se faire? Cette fonction va faire?

Exemples

var add = (function () {
var compteur = 0;
fonction de retour () {return compteur + = 1;}
}) ();

ajouter ();
ajouter ();
ajouter ();

3 // compteur

Essayez »

Des exemples d'analyses

Ajouter le mot variable indique la valeur de retour de la fonction elle - même appelle.

La fonction d'auto-appel est effectuée une seule fois. Réglage du compteur à zéro. Et revenir à l'expression de fonction.

ajouter une variable en fonction de l'utilisation. La grande partie est qu'il peut être consulté sur le champ d'application de la contre-couche de fonction.

Ceci est appelé fermetures JavaScript. Il dispose d'une variable privée de sorte que la fonction devient possible.

Contre que la portée de la protection d'une fonction anonyme ne peut être modifié par la méthode add.

note Les fermetures sont accessibles sur une fonction portée variable à l'intérieur d'une fonction, même si la fonction de la couche a été fermé.