>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 다양한 전역 객체 변수를 얻는 방법에 대한 자세한 설명

JavaScript에서 다양한 전역 객체 변수를 얻는 방법에 대한 자세한 설명

coldplay.xixi
coldplay.xixi앞으로
2020-06-17 16:36:172369검색

JavaScript에서 다양한 전역 객체 변수를 얻는 방법에 대한 자세한 설명

전역 변수는 프로그래밍 언어에서 항상 나쁜 프로그래밍 방법으로 간주되어 왔습니다. 그러나 현실은 많은 잘 알려진 프로젝트가 전역 변수를 광범위하게 사용한다는 것입니다. 예를 들어 MooTools는 Browser 개체 및 $$와 같은 수많은 개체를 전역 공간에 넣습니다. >잠깐. 가장 유명한 jQuery도 전역 변수를 사용합니다. 그래서 "전역 변수는 나쁘다"는 이론은 실제로는 매우 터무니없는 상태에 있습니다. Browser对象和$$等。而最著名的jQuery也是用的全局变量。所以,“全局变量不好”这个理论实际上处于一种很可笑的状态中。

而将全局变量暴露在外,让用户任意修改(除非是特意设计的),更是一种不好的编程习惯,这将对导致程序很难维护。那么,我们如何知道现有的全局变量空间里有哪些全局变量呢?其实方法很简单:

// UPDATE:  This method is too naive
// Returns an array of window property names
//keys(window);

// Inject an iframe and compare its `contentWindow` properties to the global window properties
(function() {
	var iframe = document.createElement('iframe');
	iframe.onload = function() {
		var iframeKeys = Object.keys(iframe.contentWindow);
		Object.keys(window).forEach(function(key) {
			if(!(key in iframeKeys)) {
				console.log(key);
			}
		});
	};
	iframe.src = 'about:blank';
	document.body.appendChild(iframe);
})();

用上面的代码我们可以做一下测试,你可以直接按功能键F12来打开console,输入上面的代码,观看输出结果。你会发现,有些对象,比如window, document, top, 和 location

사용자가 마음대로 수정할 수 있도록 전역 변수를 노출하는 것은(특별히 설계되지 않은 한) 나쁜 프로그래밍 습관이며, 이로 인해 프로그램 유지 관리가 어려워집니다. 그렇다면 기존 전역 변수 공간에 어떤 전역 변수가 있는지 어떻게 알 수 있을까요? 실제로 방법은 매우 간단합니다.

rrreee위 코드로 테스트를 수행할 수 있습니다. 기능 키 F12를 직접 눌러 콘솔을 열고 위 코드를 입력한 후 동영상을 볼 수 있습니다. 결과를 출력합니다. window, document, toplocation과 같은 일부 개체가 JavaScript에 내장되어 있음을 알 수 있습니다. 다른 많은 개체는 타사 JavaScript 코드에 의해 생성됩니다.

추천 튜토리얼: "🎜javascript 기본 튜토리얼🎜"🎜

위 내용은 JavaScript에서 다양한 전역 객체 변수를 얻는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 webhek.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제