2016-10-14 52 views
5

Я новичок в Javascript (то есть, изучая Javascript ПРАВИЛЬНО). Я читаю раздел «Статические приватные переменные» в Профессиональной Javascript для веб-разработчиков 3rd Edition в главе 7.Статические частные переменные в Javascript

я был представлен с этим кодом, но я чувствую, что это не идеал:

(function(){ 

    //private variables and functions 
    var privateVariable = 10; 

    function privateFunction(){ 
     return false; 
    } 

    //constructor 
    MyObject = function(){ 
    }; 

    //public and privileged methods 
    MyObject.prototype.publicMethod = function(){ 
     privateVariable++; 
     return privateFunction(); 
    }; 
})(); 

В этом случае они полагаются на создание MyObject в качестве глобальной переменной, опуская «var». Однако в строгом режиме вы не можете опустить ключевое слово var, и этот код вызовет ошибку.

Будет ли моя переписывать правильно?

var MyObject = (function(){ 

    //private variables and functions 
    var privateVariable = 10; 

    function privateFunction(){ 
     return false; 
    } 

    var MyObject = function(){ 
    } 

    //public and privileged methods 
    MyObject.prototype.publicMethod = function(){ 
     privateVariable++; 
     return privateFunction(); 
    }; 

    return MyObject; 
})(); 

Я смущен тем, почему книга опускает решение этой проблемы и подходит с ленивой методологией. Я твердо верю в использование «строгого режима» для всего моего кода.

+4

Этот вопрос, вероятно, принадлежит более чем в http://codereview.stackexchange.com - но я хотел бы рассмотреть ваши переписать объективно более корректно, чем пример из книги. – Mic

+5

Ваша версия в порядке. Эта книга довольно старая; 4 года - это огромный период времени в мире веб-технологий. – Pointy

+0

Извините! Был мой первый пост в stackoverflow. Если кто-то сможет переместить его в более подходящее место, это было бы здорово! –

ответ

Смежные вопросы