Establecer mi var a una función anónima con un parámetro?
-
29-09-2019 - |
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?
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.