Globale Variablen galten in Programmiersprachen schon immer als schlechte Programmiermethode. Die Realität ist jedoch, dass viele bekannte Projekte in großem Umfang globale Variablen verwenden. MooTools fügt beispielsweise eine große Anzahl von Objekten in den globalen Raum ein, z. B. Browser
-Objekte und $$
usw. Auch die bekannteste jQuery verwendet globale Variablen. Daher ist die Theorie, dass „globale Variablen schlecht sind“, tatsächlich in einem sehr lächerlichen Zustand.
Es ist eine schlechte Programmiergewohnheit, globale Variablen offenzulegen und Benutzern zu erlauben, sie willkürlich zu ändern (es sei denn, dies ist speziell vorgesehen), was die Wartung des Programms erschwert. Woher wissen wir also, welche globalen Variablen sich im vorhandenen globalen Variablenraum befinden? Tatsächlich ist die Methode sehr einfach:
// 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); })();
Wir können einen Test mit dem obigen Code durchführen. Sie können direkt die Funktionstaste F12
drücken, um die Konsole zu öffnen, den obigen Code eingeben und die Ausgabeergebnisse ansehen . Sie werden feststellen, dass einige Objekte wie window
, document
, top
und location
in JavaScript integriert sind, während viele andere Objekte durch JavaScript-Code von Drittanbietern generiert werden.
Empfohlenes Tutorial: „Javascript-Grundlagen-Tutorial“
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Methoden zum Abrufen verschiedener globaler Objektvariablen in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!