跳到主要内容

函数默认参数值

· 阅读需 1 分钟
1adybug
子虚伊人

一直以来有一个很困惑的问题,那就是函数的默认参数值是动态创建的么?测试一下:

function get(value: number[] = []) {
return value
}

const a = get()
const b = get()

console.log(a === b)

结果是 false,所以函数的默认参数值是动态创建的。

同理,解构赋值也是动态创建的:

interface Info {
data?: number[]
}

const info: Info = {}

function getData({ data = [] }: Info) {
return data
}

const c = getData(info)
const d = getData(info)

console.log(c === d)

结果是 false,所以解构赋值也是动态创建的。