Javascript中对象展开算子的时间复杂度是多少?

What is the time complexity of object spread operator in Javascript?

我发现有一些关于扩展运算符时间复杂度的 QA,但这些都是针对数组的。

对象的展开运算符时间复杂度是否相同?

a = { ...b }

如果b的key数为N,上述语句的时间复杂度是多少?

是O(N)吗?

O(n)。 Object spread遍历所有可枚举的自身属性,并赋值给一个新的对象,属性赋值是一个O(1)过程。如果有 N 个键要迭代,则大约有 N 个这样的操作要执行。

也就是说,这里99.9%的实际代码都不会成为瓶颈,所以不用担心。