Maison > interface Web > js tutoriel > Ce mécanisme dans les connaissances JavaScript_Basic

Ce mécanisme dans les connaissances JavaScript_Basic

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2016-05-16 15:16:51
original
1276 Les gens l'ont consulté

JavaScript a son propre mécanisme. Dans différentes situations, le pointage est différent.

Portée mondiale

console.log(this); //全局变量
Copier après la connexion

La portée globale l'utilise pour pointer vers des variables globales, qui sont une fenêtre dans l'environnement du navigateur.

Remarque : le mode strict d'ECMAScript5 n'a pas de variables globales, et ceci n'est pas défini ici.

Appel de fonction

function foo() {
  console.log(this);
}

foo(); //全局变量

Copier après la connexion

Cela dans les appels de fonction pointe également vers des variables globales.

Remarque : le mode strict d'ECMAScript5 n'a pas de variables globales, et ceci n'est pas défini ici.

Appel de méthode objet

var test = {
  foo: function () {
    console.log(this);
  }
}

test.foo(); //test对象

Copier après la connexion

Dans les appels de méthode objet, cela pointe vers l'appelant.

var test = {
  foo: function () {
    console.log(this);
  }
}

var test2 = test.foo;
test2(); //全局变量

Copier après la connexion

Cependant, en raison de la fonctionnalité de liaison tardive de ceci, dans l'exemple ci-dessus, cela pointera vers la variable globale, ce qui équivaut à appeler directement la fonction.

Ceci est très important. Le même segment de code ne peut être déterminé que lors de l'exécution

Constructeur

function Foo() {
  console.log(this);
}

new Foo(); //新创建的对象
console.log(foo); 

Copier après la connexion

À l'intérieur du constructeur, cela pointe vers l'objet nouvellement créé.

Définissez ceci explicitement

function foo(a, b) {
  console.log(this);
}

var bar = {};

foo.apply(bar, [1, 2]); //bar
foo.call(1, 2); //Number对象

Copier après la connexion

Lors de l'utilisation de la méthode call ou apply de Function.prototype, ceci à l'intérieur de la fonction sera défini comme premier paramètre transmis.

Étiquettes associées:
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
Derniers numéros
c++ appelle javascript
Depuis 1970-01-01 08:00:00
0
0
0
Qu’est-ce que le garbage collection JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
Que sont les fonctions de hook JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
Comment obtenir la date actuelle en JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal