MyLibrary.MyModule =
(
function initialise() {
this.id = id;
this.c = document.getElementById(id);
this.ctx = this.c.getContext('2d');
this.properties = {
setup: {
backgroundColour: options.setup.backgroundColour || 'black'
},
scale: {
show: options.scale.show || true,
colour: options.scale.color || 'white'
},
}
console.log(properties.setup.baseFontSize);
}
)(id, options);
Voy a llamar a este código usandopase de parámetros a la función de cierre en javascript
new MyLibrary.MyModule('c',options);
pero el 'id' y las opciones parece no estar definido.
alguien puede ayudar?
Empecé con algo como esto (sin cierre) y luego pensé que iba a tratar de refactorizar la función en un cierre. MyLibrary.MyModule = inicialización de función (id, opciones) { this.id = id; .. } – Abhijit
Con su refactor, está * invocando * el constructor en lugar de * asignarlo *. Si desea que tenga un alcance con algunos valores predeterminados, debe tener la función que invoca * devolver * su constructor. Me gusta: 'MyLibrary.MyModule = (function (_id, _options) {return function initialise (id, options) {/ * tu cuerpo de funciones * /};}) (id, options);', aunque no estoy seguro si esta fue tu razón para hacerlo de esa manera. – user113716