Сообщение от 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