将我的var设置为带有参数的匿名函数?
-
29-09-2019 - |
题
我正在构建我的第一个OO JS图书馆,而我在一件可能非常容易的一件事上遇到了一些麻烦...
我有这个:
var storageLocker = function(catalog){
if(catalog){
this.catalog = catalog;
}
//my code...
}()
我需要能够执行其他库(例如jQuery)的操作,您可以在其中选择一个元素(在我的情况下选择局部索引项目),然后将其他功能链接到其中。我有所有的工作,但是为了获得最佳实践,以后使它更加可扩展,我将其放在匿名功能中,现在我不知道如何拥有:
storageLocker('localStorageItem').save({"item":"an example item saved to localStorageItem"})
但是现在,如果我现在使用该语法这样做,它将返回此错误:
Uncaught TypeError: Property 'storageLocker' of object [object DOMWindow] is not a function
有任何想法吗?
解决方案
去除那个 ()
在功能主体的末尾。
你写了 var storageLocker = function(...) { ... }()
, ,创建一个匿名函数, 称呼它, 和分配 结果 到 storageLocker
.
等同于
function anonymous(...) { ... };
var storageLocker = anonymous();
由于该功能没有返回任何内容, storageLocker
最终成为 undefined
, ,不是一个函数。
不隶属于 StackOverflow