Ran*_*nec 10 javascript closures
这些功能有什么区别?谢谢你的答复!
功能#1
var myQuery = (function() {
(...)
})();
Run Code Online (Sandbox Code Playgroud)
功能#2
var myQuery = (function() {
(...)
});
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,您将自行调用函数文本并将调用的值赋给变量myQuery
.
在第二种情况下,您将分配对已定义的匿名函数的引用.这里的myQuery
行为类似于指针或对函数的引用.
为了更好地说明这一点
var myQuery = (function() {
return "Hello";
})();
Run Code Online (Sandbox Code Playgroud)
在这种情况下,myQuery
包含值Hello
.现在,如果你有:
var myQuery = (function() {
return "Hello";
});
Run Code Online (Sandbox Code Playgroud)
myQuery
包含对该函数的引用.如果您console.log
在Firebug中使用输出此值,您会看到function()
.这个引用是你可以传递甚至调用的东西.所以:
var myQuery = (function() {
return "Hello";
});
var value = myQuery();
Run Code Online (Sandbox Code Playgroud)
现在,value
将包含Hello
.希望这能解释不同之处.
归档时间: |
|
查看次数: |
2785 次 |
最近记录: |