Чтобы учесть функции вариации:
Сбор аргументов в массиве «arguments» и передача их функции.
function not(myFunction){
if (typeof myFunction != "function"){return !myFunction }
return function (...arguments) {
return !myFunction.apply(null,arguments)
}
}
короче:
const not = f => (...a) => !f.apply(null,a)
Также, чтобы заставить его работать для всех значений - проверьте, была ли передана функция. что также позволяет использовать его так: not(bigger(1,2))
:
function not(anything){
if (typeof anything != "function"){return !anything }
return function (...arguments) {
return !anything.apply(null,arguments)
}
}
var variable = true
console.log(not(bigger(6))) >>> true
console.log(not(variable))) >>> false
console.log(not(false))) >>> true
короче:
const not = f => typeof f != "function" ? !f : (...a) => !f.apply(null,a)