Javascript 请给我介绍一下ES6的例子
书中摘录:“默认值是按需计算的,只有在实际需要时:Javascript 请给我介绍一下ES6的例子,javascript,Javascript,书中摘录:“默认值是按需计算的,只有在实际需要时: 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
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)
,它只是控制台。log(x)
(这导致“x”写入控制台)
;如果未传入y
,则计算日志(y)
如果传入x
或y
则无需计算值,因此不会计算log(x)
(或y),并且不会得到控制台日志。如果不传入值,则会调用log()
将值写入控制台。无论传入什么,函数的返回值都是DONE
这是一个非常人工的例子,但它看起来像是要证明,如果你传入一个值,等式的右边永远不会被计算。你在函数中设置为
x
和y
的值是默认值。这意味着如果你没有向函数g传递任何参数de>,它将使用您设置为默认值的值x=log('x')和y=log('y')
g(0)
与g(x=0,y=log('y'))相同
因此只有y
被注销。您在函数内部对0
不做任何操作,因此只返回DONE
g()
与g(x=log('x'),y=log('y'))
相同,因此x
和y
都会注销
g(1)
与第一个示例相同:g(x=1,y=log('y'))
因此只有y
被注销。您对函数中的1
不做任何操作,因此只返回DONE
g(1,2)
与g(x=1,y=2)
相同,因此不会注销任何内容,因为您在函数中不使用1和。只返回DONE
。