Para pasar de una función a otra función, deje el ()
apagado:
$.isFunction($.isFunction); // true!
Cuando se escribe ()
está llamando la función y el uso el resultado que devuelve $.isFunction()
sin argumento devuelve false
(porque undefined
no es una función), por lo que está diciendo $.isFunction(false)
, que es, naturalmente, también false
.
No me molestaría en usar isFunction
simplemente para verificar la existencia de algo, a menos que sospeche que alguien le haya asignado un valor sin función por alguna razón. Para la comprobación de existencia pura, use el operador in
:
if ('isFunction' in $) { ...