匿名自调用 JavaScript 函数 - 返回多个对象

发布于 2024-10-06 06:55:10 字数 947 浏览 1 评论 0原文

如果我有原始函数(作为示例):

var x = function() { alert('tadaaa'); return 1; }
var y = function() { alert('tadaaa'); return 1; }

并且我已经将其制作成一个自调用的匿名 JS 函数,如下所示:

(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  x= (function() {
        var x = function() { alert('tadaaa'); return 1; }
        return x
    })()

   var  y = (function() {
        var x = function() { alert('tadaaa'); return 1; }
        return y
    })()

看起来有点多余?

If I have original function (as an example):

var x = function() { alert('tadaaa'); return 1; }
var y = function() { alert('tadaaa'); return 1; }

and I've gone ahead and made this into a self-invoking anonymous JS function, as such:

(function() {
    var x = function() { alert('tadaaa'); return 1; }
    var y = function() { alert('tadaaa'); return 1; }
})()

am I doing something paradoxical? I'd like to access x and y as global variables, but the self-invoking anonymous function is useful in other areas that I'm not going into detail right now - I just want to keep it.

Should I be doing something like:

   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
    })()

or

   var  x= (function() {
        var x = function() { alert('tadaaa'); return 1; }
        return x
    })()

   var  y = (function() {
        var x = function() { alert('tadaaa'); return 1; }
        return y
    })()

seems somewhat redundant?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

昔日梦未散 2024-10-13 06:55:10

我不确定这一切的目标是什么,但也许您可以在一个对象中返回两个函数,如下所示:

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();

这基本上就是模块模式的含义(例如,请参见 http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth)。

很好!当然,这取决于您的需要。

I'm not sure what the goal of al this is, but maybe you could return both functions in an object, like so:

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();

This is basically what the Module Pattern is about (see for example http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth).

It's good! Depending on what you need, of course.

忆伤 2024-10-13 06:55:10

你可以:

var x, y;
(function() {
  x = function() { alert('tadaaa'); return 1; }
  y = function() { alert('tadaaa'); return 1; }
})();

You can:

var x, y;
(function() {
  x = function() { alert('tadaaa'); return 1; }
  y = function() { alert('tadaaa'); return 1; }
})();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文