Realmente no entiendo bien tus dudas, pero a ver si puedo aclarar algunas cosas.
Regularmente se trata de minimizar las variables globales, ya que principalmente pueden causar colisiones, entonces es una buena práctica definir un módulo global donde estarán almacenadas tus funciones y variables. Por ejemplo, una manera sencilla sería:
Código Javascript
:
Ver original// Declara tu namespace global.
var App = App || {};
App.method = function() {
/* Magic Here */
console.log("Ponies and Rainbows");
};
App.method();
Fiddle:
http://jsfiddle.net/y6Edp/
O algo mejor sería algo como esto (inspirado en angularjs), te permite tener variables "privadas" y exponer una API de buena manera:
Código Javascript
:
Ver original(function (window) {
var app = (function () {
return window.app || (window.app = Object());
})();
app.method = function () {
/* Magic Here */
console.log("Ponies and Rainbows");
};
})(window);
app.method();
Fiddle:
http://jsfiddle.net/2eYmF/
El asunto de la jerarquía de objetos tampoco lo entiendo.
window
es el objeto global, que usa la interfaz
Window
;
window.screen
y
window.document
son propiedades de este objeto, no tiene que ver con jerarquias o herencias.
Saludos