使用以下代码:
var App = (function(param)
{
return { foo : function() { alert(param); } }
})();
var d = App('test');
d.foo();
我收到错误消息:
object is not a function
我在这里做错了什么?
答案 0 :(得分:2)
问题是,
var App = (function(param){})();
这意味着一旦遇到语句,App就会设置为{foo: function(){alert(param)}}
,但param未定义
尝试
var App = function(param)
{
return { foo : function() { alert(param); } }
};
var d = App('test');
d.foo();
答案 1 :(得分:1)
您正在将匿名函数的返回值分配给App
,然后尝试调用App
,就好像它是该函数而不是它的返回值。
这意味着App
是包含foo
的对象。
或者:
()
'test'
和(
之间放置)
,并在最后一行将d
替换为App
。