我正在构建我的第一个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, ,不是一个函数。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top