这两个函数有什么区别?感谢回复!
函数 #1
var myQuery = (function() {
(...)
})();
函数 #2
var myQuery = (function() {
(...)
});
这两个函数有什么区别?感谢回复!
函数 #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
。希望这解释了区别。我将简化函数#2
,这可能会更好地展示它们之间的差异。
var myQuery = function(){ (...) };
第一种是自执行函数,使用一个空参数列表调用。myQuery的值将是此函数返回的内容。
第二种是匿名函数的简单赋值。这个函数没有被调用过。
var myQuery = function() { … };
是相同的。 - Marcel Korpel