понимание глобального пространства имен javascript и закрытий

Я пытаюсь улучшить свое понимание глобального пространства имен в javascript, и мне любопытно несколько вещей:

  1. существует ли объект «GOD» (т.е. родитель), на который отвечают все объекты (поскольку все вещи, кроме примитивов, являются объектами), и если да, то будет ли этот объект «окном»?

  2. Почему плохая идея иметь vars/functions на глобальном уровне?

  3. Если действительно плохая идея иметь vars/functions в глобальном масштабе, то будет ли закрытие лучшим способом избежать этого? пример:

    функция parent(){
     var x = 'some value';//this var будет считаться глобальным для всех дочерних функций, но не в истинном глобальном пространстве имен
     функция child1(){
     x.someMethod()
     } 
     функция child2(){
     x*что-то;
     }
     функция child3(){
     x+=что-то;
     ребенок2()
     ребенок1()
     }
     ребенок3()
    }
    родитель()
    
31
задан Bill Keller 9 August 2014 в 16:27
поделиться