考虑一下这个闭包
function makeFunc() {
var name = "Mozilla";
function displayName() {
alert(name);
}
return displayName;
}
var myFunc = makeFunc();
myFunc();
name这个变量是用var定义的
那么按照var的规则,name会被定义在全局的window下
这样的话闭包是不是冲突了呢?
考虑一下这个闭包
function makeFunc() {
var name = "Mozilla";
function displayName() {
alert(name);
}
return displayName;
}
var myFunc = makeFunc();
myFunc();
name这个变量是用var定义的
那么按照var的规则,name会被定义在全局的window下
这样的话闭包是不是冲突了呢?
你说的不是var
定义的变量,应该是this
定义的变量在你目前的调用方式会定义到window上。
function内定义的var只有function内部可以访问
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
那么按照
var
的规则,name
会被定义在全局的window
下这个规则是哪里来的
在函数中是不会的