我正在构建我的第一个OO JS库,并且我在使用一件可能非常容易的单件时遇到一点麻烦......
我有这个:
var storageLocker = function(catalog){
if(catalog){
this.catalog = catalog;
}
//my code...
}()
我需要能够做其他像jQuery这样的库,你可以在哪里选择一个元素(在我的例子中选择一个localStorage项目),然后将其他函数链接到它。我已经完成了所有工作,但为了最佳实践并使其更具可扩展性,我将其置于匿名函数中,现在我无法弄清楚如何使用以下语法:
storageLocker('localStorageItem').save({"item":"an example item saved to localStorageItem"})
但是现在,如果我现在使用该语法执行此操作,则会返回此错误:
Uncaught TypeError: Property 'storageLocker' of object [object DOMWindow] is not a function
有什么想法吗?
答案 0 :(得分:4)
删除函数体末尾的()
。
你写了var storageLocker = function(...) { ... }()
,它创建了一个匿名函数,将其称为,并将结果分配给storageLocker
。
相当于
function anonymous(...) { ... };
var storageLocker = anonymous();
由于该函数不返回任何内容,storageLocker
最终为undefined
,并且不是函数。