比较两个JavaScript代码段

时间:2012-09-26 21:07:28

标签: javascript coffeescript

这两个JavaScript代码段是否相同?

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

和这个

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

我正在尝试coffescript。将上面的第一个代码转换为coffescript并将其转换回JS给出了第二个代码段。所以,我想知道它们是否完全相同。是否从与闭包相关的函数中返回函数?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

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

和第二个进入

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