/ / JavaScript anidando funciones y usándolas - javascript

Funciones de anidamiento de JavaScript y su uso - javascript

Soy más nuevo en JavaScript y vengo de Javafondo. Estoy tratando de escribir una aplicación de JavaScript bastante simple, pero tengo algunos problemas. Quiero duplicar un tipo de estructura de clase en JavaScript, el problema que tengo que ver tiene que ver con el alcance de las funciones dentro de las funciones.

Quiero crear una estructura como esta

function codeArray() {
function create() {
addElement( prop1, prop2,) {
//create an element
}

function traverse(object) {
//recursively go through some nested list data structure
addElement(asd, 4534);
}
}

function deleteElement() {
//delete a single element from an array
}

print() {
//print array;
}
}

something.click(function() {
codeArray.create();
codeArray.print();
});

Así que el problema que estoy encontrando es debido a laalcance de las funciones anidadas dentro de codeArray No puedo acceder a ellas desde codeArray externo. ¿Sería una mala práctica de la encapsulación simplemente deshacerse de la función codeArray de contenedor? ¿Alguien puede sugerir una mejor reescritura sobre cómo hacer esto?

Gracias por adelantado.

Respuestas

7 para la respuesta № 1

Casi tienes razón. Deberías estar usando un objeto en su lugar:

codeArray = {
create:function() {
// ...
},
// ...
print:function() {
// ...
}
};

Entonces puedes llamar:

codeArray.create();
codeArray.print();