gpt4 book ai didi

javascript - 请帮我删除 Exploring ES6 中的这个例子

转载 作者:行者123 更新时间:2023-12-03 00:35:00 28 4
gpt4 key购买 nike

摘自书中:“默认值是按需计算的,仅在实际需要时才计算:

const log = console.log.bind(console);

function g(x=log('x'), y=log('y')) {return 'DONE'}

为什么当我给这个函数一个实际参数时,它返回 y,当两个参数时,它只返回“DONE”,但如果我不给它任何行为。它会产生 x、y 和 return 语句的参数?

>> g(0)
y
"DONE"

>> g()
x
y
'DONE'

>> g(1)
y
'DONE'

g(1, 2)
'DONE'

最佳答案

这个函数声明说:

function g(x=log('x'), y=log('y')) {return 'DONE'}

如果没有传入x,则计算log(x),它只是console.log(x)(这会导致“x”写入控制台);如果在计算log(y)中没有传递y

如果您传入xy,则无需计算值,因此log(x)(或y)未计算,您不会得到控制台日志。如果您不传入值,则会调用 log() 将值写入控制台。无论您传入什么,函数的返回值都是DONE

这是一个非常人为的示例,但看起来重点是要证明,如果您传入一个值,则永远不会评估 equals 的右侧。

关于javascript - 请帮我删除 Exploring ES6 中的这个例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53694648/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com