【发布时间】:2015-10-03 22:46:45
【问题描述】:
我试图在函数中为自己分配一个变量,如果该变量与函数的参数具有相同的名称,它似乎不起作用,但如果它们的名称不同,它就会起作用。一个代码示例更清楚地说明了这一点。
这是我应该预料到的行为吗?这是我的 d3 用例的精简示例,它提示了这个问题。我也在下面展示了这一点。
无效示例
var a;
function assign(a) {
a = a;
}
assign("test")
console.log(a)
未定义
工作示例
var a;
function assign(b) {
a = b;
}
assign("test")
console.log(a)
测试
用例
var data
d3.csv("data.csv", function(error, data) {
//Doesn't work for me
data = data
}
console.log(data)
未定义
【问题讨论】:
标签: javascript scope closures shadow hoisting