我试图重写这百万种方法,无法弄清楚Tony Alicea如何从这段代码中产生结果1,2,undefined,1:
function b() {
var myVar;
console.log(myVar);
}
function a() {
myVar = 2;
console.log(myVar)
b();
}
var myVar = 1;
console.log(myVar);
a();
console.log(myVar);
您可以在https://www.youtube.com/watch?v=Bv_5Zv5c-Ts&t=74m30s处查看代码和视频,执行此操作并生成1,2,未定义,1。我继续运行它并获得1,2,未定义,2。我有什么东西吗?这样做是否导致myVar在全局范围和()范围内以2存在?我的代码目前发布在https://testing-mdmitchellnyc.c9.io/hello-world.html。
答案 0 :(得分:6)
function a()
应该是
function a() {
var myVar = 2;
console.log(myVar)
b();
}
现在function a()
的覆盖方式是覆盖全局myVar
,而不是创建自己的范围myVar