function test(flag){
if (flag) {
return function test1(){console.log(1)}
}else{
return function test1(){console.log(2)}
}
}
test(true)()
test()()
это журнал 1 и 2, то почему бы не удваивать 2? как это работаетJavascript функция Подъемный не работает
мой английский не очень хорошо, спасибо
это также работает с 1 и 2
function test(flag){
if (flag) {
function test1(){console.log(1)}
return test1
}else{
function test1(){console.log(2)}
return test1
}
}
test(true)()
test()()
Это потому, что в первом флаге вызова передается как истинный и, следовательно, выполняется истинный блок, а во втором флаге вызова будет передан как неопределенный, и, таким образом, будет выполнен ошибочный блок. –
При первом вызове 'флаг' true, затем выполняет условие 'if'. На втором флаге 'flag' является null, что является ложным, а затем выполняет условие' else'. – choz
Не пишите такой код. –