2012-02-29 139 views
0

有了下面的代码:对象不是一个函数错误

var App = (function(param) 
{ 
    return { foo : function() { alert(param); } } 
})(); 

var d = App('test'); 
d.foo(); 

我收到错误消息:

object is not a function 

我在做什么错在这里?

回答

2

的问题是,

var App = (function(param){})(); 

这意味着,一旦遇到该语句,应用程序设置为{foo: function(){alert(param)}},但参数是未定义

尝试

var App = function(param) 
{ 
return { foo : function() { alert(param); } } 
}; 

var d = App('test'); 
d.foo(); 
1

您将匿名函数的返回值分配给App,然后尝试将App作为该函数而不是其返回值调用。

这表示App是包含foo的对象。

或者:

  • 从第4行
  • 删除线6卸下()并放置()之间'test'在第4行,并与App在最后一行替换d
+0

能你展示了哪些代替行的例子? – Dev555 2012-02-29 10:14:07

相关问题