当前位置:网站首页>[Questions d'entrevue à haute fréquence] À vous de choisir

[Questions d'entrevue à haute fréquence] À vous de choisir

2021-09-15 04:52:52 Boucle infinie infinie infinie

Table des matières

  1. Comment réalisersleepEffets de(es5Oues6)
  2. En fonction de la flèchethisExemple de pointage

Un.、Comment réalisersleepEffets de(es5Oues6)

(1)whileLe mode de circulation

function sleep(ms){
   var start=Date.now(),expire=start+ms;
   while(Date.now()<expire);
   console.log('1111');
   return;
}

Copier le Code

Mise en œuvresleep(1000)Après,Je dormais.1000msEt puis la sortie1111.Les inconvénients du mode de circulation ci - dessus sont évidents,Facile à provoquer un cycle mort.

(2)AdoptionpromisePour réaliser

function sleep(ms){
  var temple=new Promise(
  (resolve)=>{
  console.log(111);setTimeout(resolve,ms)
  });
  return temple
}
sleep(500).then(function(){
   //console.log(222)
})
//D'abord sortie111,Retard500msSortie arrière222

Copier le Code

(3)AdoptionasyncEncapsulation

function sleep(ms){
  return new Promise((resolve)=>setTimeout(resolve,ms));
}
async function test(){
  var temple=await sleep(1000);
  console.log(1111)
  return temple
}
test();
//Retard1000msProduit1111

Copier le Code

(4).AdoptiongeneratePour réaliser

function* sleep(ms){
   yield new Promise(function(resolve,reject){
             console.log(111);
             setTimeout(resolve,ms);
        })  
}
sleep(500).next().value.then(function(){console.log(2222)})
Copier le Code

2.、 En fonction de la flèchethisExemple de pointage

Fonction fléchée liée au timing ,De la fonction externethisPour soi - mêmethis

1)Fonction normale


var a=11;
function Test2(){
  this.a=22;
  console.log('this1:', this);
  let b=function(){  
      console.log('this2:', this);
      console.log(this.a);
  };
  setTimeout(function(){
     console.log('this3:', this);
     console.log(this.a);
  },1000);
  
  b();
}
var t1=new Test2();
Copier le Code

Je vois.ConstructeurDe De la fonction interne this Tout indique window

image.png

2)Dans le constructeurDeFonctionsLire comme suit:Fonctions fléchées

var a=11;
function Test2(){
  this.a=22;
  console.log('this1:', this);
  let b=()=>{  
      console.log('this2:', this);
      console.log(this.a);
  };
  setTimeout(()=>{
     console.log('this3:', this);
     console.log(this.a);
  },1000);
  
  b();
}
var t1=new Test2();
Copier le Code

Je vois. À l'intérieur du constructeur DeFonction fléchéethis Tout indique son Constructeur externe Test2.

image.png

Trois、

Quatre、

Cinq

RÉFÉRENCES

- Banque de questions frontales

Résumé

  • Fonction fléchée liée au timing De la fonction externethisPourLe sien.this
  • Chaque fonction est une Boîte séparée ,Ils ont tous leurs propresthis, Comme quand une fonction est imbriquée , Quand une fonction renvoie une fonction , Lorsque la fonction est un paramètre . Sauf que les fonctions fléchées sont liées aux fonctions externes lorsqu'elles sont définies this. D'autres scénarios sont basés sur la façon dont la fonction courante est appelée ,Pour déciderthisDirection de

版权声明
本文为[Boucle infinie infinie infinie]所创,转载请带上原文链接,感谢
https://chowdera.com/2021/09/20210914174203461i.html

随机推荐