我试图在一个函数中将一个变量赋值给它自己,如果这个变量和函数的一个参数同名,它似乎不起作用,但如果它们不是同一个名字,它就起作用了。代码示例更清楚地说明了这一点。
这是我应该预料到的行为吗?这是我的 d3 用例的精简示例,它提示了这个问题。我也在下面展示了这一点。
无效示例
var a;
function assign(a) {
a = a;
}
assign("test")
console.log(a)
undefined
工作示例
var a;
function assign(b) {
a = b;
}
assign("test")
console.log(a)
test
用例
var data
d3.csv("data.csv", function(error, data) {
//Doesn't work for me
data = data
}
console.log(data)
undefined
最佳答案
在您的第一个示例中,传递给函数的参数 a
shadows在外部定义的变量 a
,因此:a=a
是将参数(传递给函数的)赋值给自身。
关于javascript - 在函数中将变量赋值给自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31421176/