Maison >interface Web >Questions et réponses frontales >Quels sont les moyens d'obtenir des objets de premier niveau dans es6
ES6 Comment obtenir l'objet de niveau supérieur : 1. Utilisez la méthode "typeof window !== 'undefined' ? window : (...) ? global : this" pour l'obtenir 2. Utilisez "var getGlobal = function () {.. .throw new Error('impossible de localiser l'objet global');};" méthode à obtenir.
L'environnement d'exploitation de ce tutoriel : système Windows 10, ECMAScript version 6.0, ordinateur Dell G3.
Navigateur : objet fenêtre
Dans Node, l'objet de niveau supérieur est global, mais il n'est pas pris en charge dans d'autres environnements.
Dans l'environnement global, cela renvoie l'objet de niveau supérieur
Dans le module Node et le module ES6, cela renvoie ceci dans le module actuel
new Function('return this')(); renvoie toujours l'objet global. Mais si le navigateur utilise CSP, les méthodes eval et new Function peuvent ne pas être disponibles
CSP : Content Security Policy, politique de sécurité du contenu. Il fonctionne sur les ressources chargées ou exécutées par le site Web via un mécanisme de liste blanche, défini dans la page Web via des informations d'en-tête HTTP ou des méta-éléments. Mais cela a également causé les problèmes suivants : l'évaluation et les fonctions associées sont désactivées. Le code JavaScript intégré ne sera pas exécuté. Les scripts distants ne peuvent être chargés que via la liste blanche. Comment obtenir l'objet de niveau supérieur// 方法1 // 针对 浏览器中 顶层对象是window,但是Node和Web Worker没有window。 ( typeof window !== 'undefined' ? window : ( typeof process === 'object' && typeof require === 'function' && typeof global === 'object' ) ? global : this ); //方法2 // 针对 浏览器和Web Worker中,self也指向顶层对象,但是Node没有self。 var getGlobal = function () { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } throw new Error('unable to locate global object'); };[Recommandations associées :
tutoriel vidéo javascript,
- front-end web
]
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!