为什么我会得到以下错误..。
Uncaught TypeError: object is not a function
...at的下面一行,特定的JS脚本?
(function($){
为什么只有当JS连在一起时我才会得到这个错误?(我用的是杯酒)
如果我在这一行前面添加;,为什么它会起作用,比如:
;(function($){
更新
根据运行时错误,前面的一行(即不是函数的对象)是一个},如下所示:
storage = {
//...
}我习惯用分号,但不是在花括号后面。
原来大括号可以分隔语句的结尾,就像在本例中一样,然后建议使用分号来避免这个错误。Here是个很好的解释。
发布于 2014-07-30 19:29:38
Javascript忽略缺少的分号,并尝试解释它。所以,如果你不输入分号,它会使用下一行来看它是应该结束这一行还是链接它。
它允许你使用这样的东西:
String
.split();它将被解释为:
String.split();但是,这也是可行的:
String
.split
();现在,如果你有这样的东西
var a = 'a';
var b = a
(function(){})JavaScript无法知道您真正想要做什么,所以它会这样解释它:
var a = 'a';
var b = a(function(){});给出错误[place object type here] is not a function
的底线,总是把你的分号.
编辑
在看到代码之后,这里是如何解释代码的:
storage = {/**/}(function($){})(jQuery);所以Object ({} === Object)不是function
发布于 2014-07-30 19:18:06
当连接时,它相信您正在尝试调用在(function($) {...}之前的任何东西。
如果将()放在引用之后,它会尝试调用任何引用。这就是为什么您将看到许多JavaScript库在它们的代码前面使用一个单独的;
https://stackoverflow.com/questions/25045047
复制相似问题