这些功能之间有什么区别?感谢您的回复!

功能#1

var myQuery = (function() {

  (...)

})();

功能2
var myQuery = (function() {

  (...)

});

最佳答案

在第一种情况下,您将自调用函数文字并将调用的值分配给变量myQuery

在第二种情况下,您将为您定义的匿名函数分配一个引用。在这里,myQuery的作用类似于指针或对函数的引用。

为了更好地说明这一点。

var myQuery = (function() {
   return "Hello";
})();

在这种情况下,myQuery包含值Hello。现在,如果您有:
var myQuery = (function() {
   return "Hello";
});
myQuery包含对该函数的引用。如果您在Firebug中使用console.log输出此值,则会看到function()。该引用是您可以传递甚至调用的东西。所以:
var myQuery = (function() {
   return "Hello";
});

var value = myQuery();

现在,value将包含Hello。希望这可以解释差异。

关于javascript - JavaScript中的自调用函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4035572/

10-08 21:28