Я не был уверен, как назвать этот вопрос, поскольку это почти сам вопрос. В основном я возился с каким-то кодом и нашел то, что я не могу объяснить. Вот упрощение:Оценка функции Javascript как переменной
function foo (a, b) {
if (foo) {
console.log("foo is true");
} else if (!foo) {
console.log("foo is false");
}
}
foo();
Это выводит «Foo правда», но то, что я не понимаю, как Js оценки функции без его выполнения (отсутствие();), и как я могу выполнить его даже без прохождения параметров, определенных в функции. Возможно, я должен сказать, что единственным языком, который я действительно знаю, является java.
потому что функция truthy ... http://stackoverflow.com/questions/28571451/equality-of -truthy-and-falsy-values-javascript – epascarello
'foo' - это имя функции, поэтому по логике это не' undefined', поэтому оно должно существовать (или быть 'true') –
JS не нужно оценивать/вызывать функцию в вашем примере , Вы можете рассматривать функцию в JS как объект, но с дополнительной функцией - возможностью вызова. Обратите внимание: 'if (foo)' что-то другое, чем 'if (foo())' – xersiee