Почему константы не могут быть заданы как свойства объектов, которые сами являются переменными?
const a = 'constant' // all is well
// set constant property of variable object
const window.b = 'constant' // throws Exception
// OR
var App = {}; // want to be able to extend
const App.goldenRatio= 1.6180339887 // throws Exception
И как же константы, пройденные по ссылке, внезапно становятся переменными? EDIT: Я знаю, что приложение не будет (или скорее... НЕ ДОЛЖНО) быть изменчивым; это просто наблюдение...
(function() {
const App;
// bunch of code
window.com_namespace = App;
}());
window.com_namespace; // App
window.com_namespace = 'something else';
window.com_namespace; // 'something else'
Как можно сделать с этими ограничениями красиво организованную, расширяемую, объектно-ориентированную библиотеку с одним пространством имен, содержащую константы?
EDIT: я считаю, zi42, но мне просто нужно спросить why