Остерегайтесь всего, что претендует на звание "профи".Я не читал книгу, но мой код выглядит следующим образом:
> var Class = (function() {
>
> // Constants (created as private static attributes).
Слово «атрибуты» неверно, оно должно быть либо «свойствами», либо «переменными», потому что они являются переменными, который также может быть описан как свойства локального объекта активации / переменной.
> var UPPER_BOUND = 100;
>
> // Privileged static method.
> this.getUPPER_BOUND() {//sic
Код будет выполняться в глобальном контексте, где this
- это окно / глобальный объект.Так что если есть глобальная функция * getUPPER_BOUND *, она будет вызываться без аргументов.За ним следует фигурная скобка ({), которая открывает блок в месте, где блок не может быть, так что это синтаксическая ошибка.
Я предполагаю, что предполагалось следующее:
this.getUPPER_BOUND = function() {
, которая создает свойство getUPPER_BOUND объекта global / window, которому при выполнении кода назначается анонимная функция в RHS.
> return UPPER_BOUND; }
>
> ...
>
> // Return the constructor.
> return function(constructorArgument) {
Эта функция назначена глобальной переменной «Класс».
> ...
> }
> })();
С исправлениями это может «работать», но не элегантно.Ни одна книга с такими явными ошибками в коде не была тщательно написана и, конечно, не была должным образом рассмотрена перед публикацией.
Используйте авторитетные онлайн-ресурсы и продолжайте задавать вопросы о том, чего вы не понимаете или не думаетев ошибке.Существуют и другие форумы для обсуждения javascript, которые могут дать гораздо более подробные ответы на технические вопросы.