Показать сообщение отдельно
  #14 (permalink)  
Старый 03.08.2018, 13:10
Интересующийся
Отправить личное сообщение для RuBrain Посмотреть профиль Найти все сообщения от RuBrain
 
Регистрация: 20.04.2018
Сообщений: 21

Сообщение от Rise Посмотреть сообщение
RuBrain,
Что-то у вас отличается, второй вариант не имеет смысла, оно итак так.
Я удалил не нужное, чтобы проще читался код.


Сообщение от Rise Посмотреть сообщение
И что-то сам автор начудил с этой функцией enumeration, как-то это он не по javascript-ному сделал, зачем-то всё засунул в свойства функции и запретил ее вызывать, наверное по опыту из какого-то другого языка, где всякие статические классы есть, он это сделал, но без лишних понтов смысл такой:
Ну он вот как объяснил:

Пример 9.7 содержит единственную функцию enumeration(). Однако она не является конструктором: она не определяет класс с именем «enumeration». Но она является фабричной функцией: при каждом вызове она создает и возвращает новый класс. Ниже показано, как ее можно использовать:

var Coin = enumeration({Penny: 1, Nickel:5, Dime:10, Quarter:25});
var c = Coin.Dime; // This is an instance of the new class
c instanceof Coin // => true: instanceof works
c.constructor == Coin // => true: constructor property works
Coin.Quarter + 3*Coin.Nickel // => 40: values convert to numbers
Coin.Dime == 10 // => true: more conversion to numbers
Coin.Dime > Coin.Nickel // => true: relational operators work
String(Coin.Dime) + ":" + Coin.Dime // => "Dime:10": coerce to string
Ответить с цитированием