Pourquoi est-il avantageux de compter uniquement sur la chaîne de portée et d'éviter de référencer explicitement l'objet principal en version Javascript?

J'ai lu ce livre "Javascript Enlightenment" de Cody Lindley. À la page 82, il déclare: «Être explicite (par exemple, window.alert () vs alert ()) coûte un peu plus cher en ce qui concerne les performances. Il est plus rapide si vous comptez sur la chaîne de portée seule et évitez de référencer explicitement l'objet principal même si Vous savez que la propriété que vous désirez est contenue dans la portée globale. "

Je suis curieux de savoir pourquoi. Je pense que ce serait le contraire, parce que l'interprète Javascript pourrait simplement ignorer la vérification de la portée et la trouver directement. Je ne vois pas comment il est avantageux de ne pas préciser l'adresse exacte de quelque chose.

Je veux dire, je sais que je ne voudrais pas taper window.whatever () chaque fois que je veux utiliser quelque chose contenu dans la portée globale et je pense qu'il est bon qu'il soit plus rapide de ne pas préciser. Je ne sais pas pourquoi.

Juste une de ces choses «veulent savoir».

L'interprète doit toujours utiliser la chaîne de portée. Lorsque vous écrivez window.alert() il faut marcher sur la chaîne de la portée pour trouver la valeur de la window – vous pourriez avoir une variable locale nommée window qui ombre celle de la tête, donc elle ne peut pas supposer que cela soit L'objet global.

Si JavaScript avait une syntaxe pour désigner explicitement le contexte de niveau supérieur, cela serait plus rapide. Mais ce n'est pas le cas.