匿名自调用JavaScript函数-返回多个对象
如果我有原始函数(作为示例): 我已经将其转化为一个自调用匿名JS函数,如下所示:匿名自调用JavaScript函数-返回多个对象,javascript,anonymous-function,Javascript,Anonymous Function,如果我有原始函数(作为示例): 我已经将其转化为一个自调用匿名JS函数,如下所示: (function() { var x = function() { alert('tadaaa'); return 1; } var y = function() { alert('tadaaa'); return 1; } })() 我在做一些自相矛盾的事吗?我想将x和y作为全局变量访问,但自调用匿名函数在其他方面很有用,我现在不想详细介绍,我只想保留它 我应该做一些类似于: var
(function() {
var x = function() { alert('tadaaa'); return 1; }
var y = function() { alert('tadaaa'); return 1; }
})()
我在做一些自相矛盾的事吗?我想将x和y作为全局变量访问,但自调用匿名函数在其他方面很有用,我现在不想详细介绍,我只想保留它
我应该做一些类似于:
var x= (function() {
var x = function() { alert('tadaaa'); return 1; }
var y = function() { alert('tadaaa'); return 1; }
// Should I be doing something like
return x
})()
或
似乎有些多余?我不确定这是为了什么,但也许可以在一个对象中同时返回两个函数,如下所示:
var funcs = (function() {
var x = function() { alert('tadaaa'); return 1; };
var y = function() { alert('tadaaa'); return 1; };
return {x: x, y: y};
})();
funcs.x();
funcs.y();
这就是模块模式的基本内容(参见示例)
很好!当然,这取决于您需要什么。我不确定al this的目标是什么,但也许您可以在一个对象中同时返回两个函数,如下所示:
var funcs = (function() {
var x = function() { alert('tadaaa'); return 1; };
var y = function() { alert('tadaaa'); return 1; };
return {x: x, y: y};
})();
funcs.x();
funcs.y();
这就是模块模式的基本内容(参见示例)
很好!当然,这取决于您的需要。您可以:
var x, y;
(function() {
x = function() { alert('tadaaa'); return 1; }
y = function() { alert('tadaaa'); return 1; }
})();
你可以:
var x, y;
(function() {
x = function() { alert('tadaaa'); return 1; }
y = function() { alert('tadaaa'); return 1; }
})();
在第二个代码片段中,我相信您将创建
x
和y
的本地实例,因此无法全局访问这些实例。缺少offvar
将创建全局变量。但是,我不确定您为什么要在不查看上下文的情况下执行此操作。在第二个代码片段中,我相信您将创建x
和y
的本地实例,因此无法全局访问这些实例。缺少offvar
将创建全局变量。然而,我不知道你为什么要在没有看到上下文的情况下这样做。