以下片段完全相同吗?如果没有什么是尊重?
var x = (function() {
... //a
return function(){
... //b
};
})();
Run Code Online (Sandbox Code Playgroud)
与
var x;
{
... //a
x = function(){
... //b
};
}
Run Code Online (Sandbox Code Playgroud)
有一个主要区别:在JavaScript中,块不会引发新的变量范围.因此,您无法在// a代码块中定义私有变量.相比
var x = (function() {
var v = 42;
return function(){
return v;
};
})();
// v; would yield ReferenceError: v is not defined, so you need to call x
Run Code Online (Sandbox Code Playgroud)
和
var x;
{
var v = 42;
x = function(){
return v;
};
}
// v is 42 here, that's not what's intended.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2774 次 |
| 最近记录: |