首頁  >  文章  >  web前端  >  詳解取得JavaScript各種全域物件變數的方法

詳解取得JavaScript各種全域物件變數的方法

coldplay.xixi
coldplay.xixi轉載
2020-06-17 16:36:172327瀏覽

詳解取得JavaScript各種全域物件變數的方法

全域變數在程式語言中一向被認為是一種不好的程式方法。但現實情況是,許多著名的項目都在大量的使用著全域變量,比如,MooTools就將大量的物件放到全域空間,像是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都是JavaScript內建的,而很多它的對象,都是第三方JavaScript程式碼產生的。

推薦教學:《javascript基礎教學

以上是詳解取得JavaScript各種全域物件變數的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:webhek.com。如有侵權,請聯絡admin@php.cn刪除