Pregunta

Estoy construyendo mi primera biblioteca OO JS y la mensajería instantánea tiene problemas con una pieza que es probablemente muy fácil ...

tengo esto:

var storageLocker = function(catalog){
    if(catalog){
        this.catalog = catalog;
    }
    //my code...
}()

Tengo que ser capaz de hacer lo que otras bibliotecas como jQuery hacen donde puede seleccionar un elemento (en mi caso seleccionar un elemento de almacenamiento local) y luego encadenar otras funciones a la misma. Tenía todo lo que trabajar, pero para las mejores prácticas y para que sea más extensible más tarde me puse en una función anónima y ahora no puedo encontrar la manera de tener la sintaxis de:

storageLocker('localStorageItem').save({"item":"an example item saved to localStorageItem"})

pero ahora si lo hago ahora con la sintaxis que devuelve este error:

Uncaught TypeError: Property 'storageLocker' of object [object DOMWindow] is not a function

¿Alguna idea?

¿Fue útil?

Solución

Eliminar el () al final del cuerpo de la función.

escribió var storageLocker = function(...) { ... }(), lo que crea una función anónima, lo llama y cesionarios el resultado a storageLocker.

Es equivalente a

function anonymous(...) { ... };
var storageLocker = anonymous();

Dado que la función no devuelve nada, extremos storageLocker siendo undefined, y no es una función.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top