Javascript 是否将我的var设置为带参数的匿名函数?
我正在构建我的第一个OO JS库,我在其中一个方面遇到了一些问题,这可能非常简单 我有这个:Javascript 是否将我的var设置为带参数的匿名函数?,javascript,oop,local-storage,Javascript,Oop,Local Storage,我正在构建我的第一个OO JS库,我在其中一个方面遇到了一些问题,这可能非常简单 我有这个: var storageLocker = function(catalog){ if(catalog){ this.catalog = catalog; } //my code... }() 我需要能够像jQuery这样的其他库那样,选择一个元素(在我的例子中选择一个localStorage项),然后将其他函数链接到它。我已经完成了所有这些工作,但为了获得最佳实践
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
有什么想法吗?删除函数体末尾的()
您编写了var-storageLocker=function(…){…}()
,它创建了一个匿名函数,调用它,并将结果分配给storageLocker
相当于
function anonymous(...) { ... };
var storageLocker = anonymous();
由于函数不返回任何内容,storageLocker
最终是未定义的,并且不是函数。删除函数体末尾的()
您编写了var-storageLocker=function(…){…}()
,它创建了一个匿名函数,调用它,并将结果分配给storageLocker
相当于
function anonymous(...) { ... };
var storageLocker = anonymous();
由于函数不返回任何内容,
storageLocker
最终是未定义的,并且不是一个函数。一直在尝试,但我不得不等待10分钟:)一直在尝试,但我不得不等待10分钟:)我读了你关于这方面的其他问题,如果你想使用私有变量,你需要使用闭包。也就是说,您应该在结尾处使用这个结构,并且使用()
,但是您需要从内部返回第二个函数,该函数处理您的实际逻辑。在另一个问题上有一个很好的例子,我读了你关于这个的另一个问题,如果你想使用私有变量,你需要使用闭包。也就是说,您应该在结尾处使用这个结构,并且使用()
,但是您需要从内部返回第二个函数,该函数处理您的实际逻辑。在另一个问题上有一个很好的例子。