Javascript 中数组作为默认参数安全吗?

ham*_*dog 6 javascript python default-arguments

我将从 Python 转向 Javascript。在 Python 中,如果使用列表或字典作为函数的默认参数,则每次调用都会看到相同的对象。所以如果你有一个像这样的函数:

def append_to_list(lst=[]):
  lst.append(1)
  return lst
Run Code Online (Sandbox Code Playgroud)

然后这样称呼它:

lst1 = append_to_list()
lst2 = append_to_list()
Run Code Online (Sandbox Code Playgroud)

lst2将会有价值[1, 1]而不仅仅是[1]

Javascript 对于默认参数也有同样的问题吗?

ham*_*dog 2

似乎没有同样的问题。使用功能进行测试:

function append_to_list(lst=[]) {
  lst.push(1)
  return lst
}
Run Code Online (Sandbox Code Playgroud)

并且以相同的方式调用[1]两次都会返回。