【问题标题】:Comparing two JavaScript code snippets比较两个 JavaScript 代码片段
【发布时间】:2012-09-26 21:07:28
【问题描述】:

这 2 个 JavaScript 代码 sn-ps 是否等效?

jQuery(document).ready(function() {
    (function(){
        return 'something';
    })();
});

还有这个

jQuery(document).ready(function() {
  return (function() {
    return "something";
  })();
});

我正在尝试咖啡。将上面的第一个代码转换为 coffescript 并将其转换回 JS 得到第二个 sn-p。所以,我想知道它们是否完全相同。不是从与闭包相关的函数中返回函数吗?

【问题讨论】:

  • CoffeeScript 中的函数返回它们最后一个表达式的值,这就是第二个中多余的return 的来源。

标签: javascript coffeescript


【解决方案1】:

它们会是一样的,是的。除了第二个将使用多 1 个堆栈内存单元。

【讨论】:

    【解决方案2】:

    这取决于.ready 方法是否使用其回调的返回值。如果是这样,那么例子就不同了。如果返回值被忽略,则相同。

    如果你停下来想一想,你可以“简化”那个立即调用的函数表达式。这样做会将第一个示例变成

    jQuery(document).ready(function() {
        'something';
    });
    

    第二个进入

    jQuery(document).ready(function() {
        return 'something';
    });
    

    【讨论】:

      猜你喜欢
      • 2013-08-26
      • 1970-01-01
      • 2014-07-15
      • 2012-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多