来自Code Review Stack Exchange的
This question was migrated,因为可以在Stack Overflow上进行回答。
Migrated 5年前。
我正在编写一个流星助手功能,该功能有一个奇怪之处,即该函数的最后一个参数始终为
为了避免对每个参数进行检查,我编写了以下简单的代码来解开最后一个参数:
JSHint此时会引发错误,但是环顾四周,我看不出没有这样做的任何真正原因。
这条线安全吗?是否有任何需要担心的怪癖,还是应该在任何地方都能按预期工作?
Migrated 5年前。
我正在编写一个流星助手功能,该功能有一个奇怪之处,即该函数的最后一个参数始终为
{hash: {"name":"objectICareAbout"}}
形式。我试图编写一个灵活的助手,可以用几种不同的方式调用它,所以我想解开最后一个参数。为了避免对每个参数进行检查,我编写了以下简单的代码来解开最后一个参数:
arguments[arguments.length - 1] = arguments[arguments.length - 1].hash;
JSHint此时会引发错误,但是环顾四周,我看不出没有这样做的任何真正原因。
这条线安全吗?是否有任何需要担心的怪癖,还是应该在任何地方都能按预期工作?
最佳答案
这可能会在您的浏览器中起作用,但是当JS在严格模式下运行时它不起作用-请参见here和here-这大概是JSHint不喜欢它的原因。
根据megawac的评论,这取决于您随后对参数的处理方式,但是我认为将它们解压缩到新的对象/数组中可能是一个更好的主意。
关于javascript - 处理参数对象是个好主意吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25429150/