这些功能之间有什么区别?感谢您的回复!
功能#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/