来自Code Review Stack Exchange的

This question was migrated,因为可以在Stack Overflow上进行回答。
                            Migrated 5年前。
                        
                    
                
                            
                    
我正在编写一个流星助手功能,该功能有一个奇怪之处,即该函数的最后一个参数始终为{hash: {"name":"objectICareAbout"}}形式。我试图编写一个灵活的助手,可以用几种不同的方式调用它,所以我想解开最后一个参数。

为了避免对每个参数进行检查,我编写了以下简单的代码来解开最后一个参数:

arguments[arguments.length - 1] = arguments[arguments.length - 1].hash;


JSHint此时会引发错误,但是环顾四周,我看不出没有这样做的任何真正原因。

这条线安全吗?是否有任何需要担心的怪癖,还是应该在任何地方都能按预期工作?

最佳答案

这可能会在您的浏览器中起作用,但是当JS在严格模式下运行时它不起作用-请参见herehere-这大概是JSHint不喜欢它的原因。

根据megawac的评论,这取决于您随后对参数的处理方式,但是我认为将它们解压缩到新的对象/数组中可能是一个更好的主意。

关于javascript - 处理参数对象是个好主意吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25429150/

10-12 07:37
查看更多