ES6 최상위 개체를 가져오는 방법: 1. "typeof window !== 'undefine' ? window : (...) ? global : this" 메서드를 사용하여 가져옵니다. 2. "var getGlobal = function () {.. .throw new Error('전역 개체를 찾을 수 없습니다');};" 메서드를 가져옵니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, ECMAScript 버전 6.0, Dell G3 컴퓨터.
Browser: 창 개체
Node에서는 최상위 객체가 전역적이지만 다른 환경에서는 지원되지 않습니다.
전역 환경에서는 최상위 객체를 반환합니다.
Node 모듈과 ES6 모듈에서는 이를 반환합니다.
new를 반환합니다. Function('return this')(); 그러나 브라우저가 CSP를 사용하는 경우 eval 및 새로운 함수 메서드를 사용하지 못할 수 있습니다.
CSP: 콘텐츠 보안 정책, 콘텐츠 보안 정책. 이는 HTTP 헤더 정보 또는 메타 요소를 통해 웹 페이지에 정의된 화이트리스트 메커니즘을 통해 웹 사이트에서 로드하거나 실행하는 리소스에 대해 작동합니다. 하지만 이로 인해 다음과 같은 문제가 발생했습니다.평가 및 관련 기능이 비활성화되었습니다.
임베디드 JavaScript 코드는 실행되지 않습니다.
원격 스크립트는 화이트리스트를 통해서만 로드할 수 있습니다.
최상위 객체를 얻는 방법
// 方法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'); };- [관련 권장사항:
javascript 비디오 튜토리얼- ,
웹 프론트엔드- ]
위 내용은 es6에서 최상위 객체를 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!