说我有一个功能:
function hi(message) {
return message;
}
我在该功能中有一个功能:
function hi(message) {
function say(message) {
return message;
}
say("hello");
}
hi("sup");
如果它们是相同的,那么这些论点会相互混淆吗?
答案 0 :(得分:3)
内部函数参数将隐藏外部参数。
不会有任何错误。
答案 1 :(得分:2)
没有
// let this be message #1
function hi(message) {
//Inside this scope we have message === #1
// let this be message #2
function say(message) {
// inside this scope we have message === #2
return message;
}
say("hello");
}
hi("sup");
它将按预期工作。
从可读性/维护性的角度来看,我认为重新使用参数/变量名称是不好的。
您还遇到的问题是,在内部函数中,您的#2
变量是阴影变量#1
这意味着无法访问#1
say