当函数中定义的函数的参数与封闭函数的参数相同时,它们是否会产生错误
Do the arguments of a function defined within a function create an error when they are the same as the enclosing function's arguments?
假设我有一个函数:
function hi(message) {
return message;
}
我在该函数中有一个函数:
function hi(message) {
function say(message) {
return message;
}
say("hello");
}
hi("sup");
如果参数相同,它们会相互混淆吗?
内部函数参数将隐藏外部函数参数。
不会有任何错误。
No.
// 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
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- AngularJS:我可以跳过函数参数回调吗
- 为什么不'我们在javascript中使用函数参数的数据类型
- 使用闭包共享构造函数参数
- 函数参数的值错误
- 当一个重要的构造函数参数丢失时应该发生什么
- 阻止ReSharper将JavaScript函数参数放到新行中
- 根据函数参数将CSS值存储在var中,然后对其进行操作
- 使构造函数参数具有ES6类方法的特权
- 当客户端将两个按钮的javascript函数参数修改为相同时,SQL/PHP会更新多行
- Windows.Networking.EndpointPair构造函数参数
- 是否可以使用Sinon.JS检查函数参数绑定是否正确
- 大括号中的Javascript函数参数
- jQuery 无法使用 AJAX 调用访问函数内部的函数参数
- 将JSON字符串转换为函数参数
- eval()读取函数参数有多糟糕
- Javascript不能在一个命令中使用函数参数
- 函数参数在内部不可见,返回新的Promise(函数(resolve,reject).传递给被promise化的函数的
- ES6类构造函数参数
- 是否可以在javascript函数参数列表中调用多个函数