¿Cómo es que las constantes no se pueden establecer como propiedades de objetos que son variables en sí mismas?¿Cómo crear constantes Javascript como propiedades de los objetos usando la palabra clave const?
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
Y cómo es que las constantes pasados por referencia repente convertido en variable? EDITAR: Sé que la aplicación no (o más bien ... NO DEBE) ser mutable; esto es sólo una observación ...
(function() {
const App;
// bunch of code
window.com_namespace = App;
}());
window.com_namespace; // App
window.com_namespace = 'something else';
window.com_namespace; // 'something else'
¿Cómo puede una muy bien organizada, extensible, orientadas a objeto, por separado namespaced biblioteca que contiene las constantes pueden hacer con estas limitaciones?
EDIT: Creo zi42, pero acabo de tener que pedir why
¿No se pasan los objetos por referencia? – danronmoon
Sí, pero 'const obj = {}' es un poco inútil porque la referencia será constante, pero aún puede modificar el objeto. –
No. Los objetos no son * "pasados por referencia" (esta es una frase ambigua en el mejor de los casos). Una implementación generalmente "pasará * por el * valor * de la referencia", pero lo importante es que JavaScript tiene [Semántica Call By Object Sharing] (http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_sharing). Dato curioso: * la especificación ECMAScript no usa el término "referencia" *. –