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

Explication détaillée de ce problème de pointage en mode strict JavaScript

巴扎黑
Libérer: 2018-05-29 13:43:41
original
1696 Les gens l'ont consulté

En plus du mode d'exécution normal, ECMAscript 5 ajoute un deuxième mode d'exécution : le "mode strict". L'article suivant vous présente principalement quelques informations pertinentes à ce sujet en mode JavaScript strict. Les amis qui en ont besoin peuvent s'y référer.

Avant-propos

Je crois que beaucoup de gens ont été confus par cela en JavaScript lorsqu'ils apprenaient ou utilisaient JavaScript, puis. cet article en résumera les différentes directions en mode strict.

1. ceci dans la portée globale

En mode strict, dans la portée globale, ceci pointe vers l'objet window

 "use strict";
 
 console.log("严格模式");
 console.log("在全局作用域中的this");
 console.log("this.document === document",this.document === document);
 console.log("this === window",this === window);
 this.a = 9804;
 console.log('this.a === window.a===',window.a);
Copier après la connexion


2. ceci dans la fonction dans le périmètre global

En mode strict, this dans cette fonction est égal à indéfini

 "use strict";
 
 console.log("严格模式");
 console.log('在全局作用域中函数中的this');
 function f1(){
 console.log(this);
 }
 
 function f2(){
 function f3(){
 console.log(this);
 }
 f3();
 }
 f1();
 f2();
Copier après la connexion


3. Fonctions d'objet (méthodes) this dans

En mode strict, ceci dans la fonction de l'objet pointe vers l'instance de l'objet

 "use strict";
 
 console.log("严格模式");
 console.log("在对象的函数中的this");
 var o = new Object();
 o.a = 'o.a';
 o.f5 = function(){
 return this.a;
 }
 console.log(o.f5());
Copier après la connexion


4. Ceci dans le constructeur

En mode strict, this dans le constructeur pointe vers l'instance d'objet créée par le constructeur .

 "use strict";
 
 console.log("严格模式");
 console.log("构造函数中的this");
 function constru(){
 this.a = 'constru.a';
 this.f2 = function(){
 console.log(this.b);
 return this.a;
 }
 }
 var o2 = new constru();
 o2.b = 'o2.b';
 console.log(o2.f2());
Copier après la connexion


5. ceci dans la fonction de gestionnaire d'événements

En mode strict, dans la fonction de gestionnaire d'événements, cela pointe vers l'objet cible qui a déclenché l'événement.

 "use strict";
 
 function blue_it(e){
 if(this === e.target){
 this.style.backgroundColor = "#00f";
 }
 }
 var elements = document.getElementsByTagName('*');
 for(var i=0 ; i<elements.length ; i++){
 elements[i].onclick = blue_it;
 }
 
 //这段代码的作用是使被单击的元素背景色变为蓝色
Copier après la connexion

6. ceci dans la fonction de traitement des événements en ligne

En mode strict, traitement des événements en ligne Dans la fonction, il y a les deux situations suivantes :

 <button onclick="alert((function(){&#39;use strict&#39;; return this})());">
 内联事件处理1
 </button>
 <!-- 警告窗口中的字符为undefined -->
 
 <button onclick="&#39;use strict&#39;; alert(this.tagName.toLowerCase());">
 内联事件处理2
 </button>
 <!-- 警告窗口中的字符为button -->
Copier après la connexion

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!

É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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!