Javascript 获取函数而不是运行函数时引发错误的任何方法

Javascript 获取函数而不是运行函数时引发错误的任何方法,javascript,Javascript,常见错误: a = myfunction; …而不是: a = myfunction(); 有没有办法避免这种情况 如果我们在一个对象中有这个函数,我可以对该对象说些什么来避免返回函数并要求执行吗 您可以使用typeof检查它是否是一个函数: a = myfunction; var result; if (typeof a == "function") // a was set to myfunction, not myfunction() result = a(); el

常见错误:

a = myfunction;
…而不是:

a = myfunction();
有没有办法避免这种情况


如果我们在一个对象中有这个函数,我可以对该对象说些什么来避免返回函数并要求执行吗

您可以使用
typeof
检查它是否是一个函数:

a = myfunction;
var result;

if (typeof a == "function")
    // a was set to myfunction, not myfunction()
    result = a();
else
    // a was presumably set to myfunction() and not myfunction
    result = a;

这样,如果函数确实是一个函数,则可以调用该函数,否则可以使用它执行其他操作,前提是您希望这样做。

您可以使用
typeof
检查它是否是一个函数:

a = myfunction;
var result;

if (typeof a == "function")
    // a was set to myfunction, not myfunction()
    result = a();
else
    // a was presumably set to myfunction() and not myfunction
    result = a;

这样,如果函数确实是一个函数,则可以调用该函数,否则可以使用它执行其他操作,前提是您希望这样做。

您可以使用
typeof
检查它是否是一个函数:

a = myfunction;
var result;

if (typeof a == "function")
    // a was set to myfunction, not myfunction()
    result = a();
else
    // a was presumably set to myfunction() and not myfunction
    result = a;

这样,如果函数确实是一个函数,则可以调用该函数,否则可以使用它执行其他操作,前提是您希望这样做。

您可以使用
typeof
检查它是否是一个函数:

a = myfunction;
var result;

if (typeof a == "function")
    // a was set to myfunction, not myfunction()
    result = a();
else
    // a was presumably set to myfunction() and not myfunction
    result = a;


这样,如果函数确实是函数,则可以调用该函数,否则可以使用它执行其他操作,假设这就是你想要做的。

这是一个有效的JavaScript语句,抛出一个错误是没有意义的。我知道……但只有当你想要得到一个有效的JavaScript语句的函数,抛出一个错误是没有意义的。我知道……但只有当你想要得到一个有效的JavaScript语句并抛出一个错误的函数时没有意义。我知道…但只有当你想得到一个有效的JavaScript语句的函数,并且抛出一个错误时才有意义。我知道…但只有当你想得到一个非常快的向下投票的函数时,你能解释一下原因吗?不是我的向下投票,但我把这个问题理解为OP想要减少不必要的bug,因为他们不小心键入了
a=myfunctiona=myfunction()时。这不会有帮助。但是
a=myfunction
不会产生任何错误。这是一个有效的JS语句。@Juhana如果您声明了
a=myfunction
,那么您就可以检查
a
是否是函数(并执行
a()
,而不是假设函数已经执行)。这实际上并不能回答问题。OP知道
myFunction
是一个函数(他/她必须知道它)。他/她想要一个能捕捉程序员错误的读心器。这是一个难以置信的快速否决票,你能解释一下原因吗?不是我的否决票,但我把这个问题理解为当他们意外键入
a=myfunctiona=myfunction()时。这不会有帮助。但是
a=myfunction
不会产生任何错误。这是一个有效的JS语句。@Juhana如果您声明了
a=myfunction
,那么您就可以检查
a
是否是函数(并执行
a()
,而不是假设函数已经执行)。这实际上并不能回答问题。OP知道
myFunction
是一个函数(他/她必须知道它)。他/她想要一个能捕捉程序员错误的读心器。这是一个难以置信的快速否决票,你能解释一下原因吗?不是我的否决票,但我把这个问题理解为当他们意外键入
a=myfunctiona=myfunction()时。这不会有帮助。但是
a=myfunction
不会产生任何错误。这是一个有效的JS语句。@Juhana如果您声明了
a=myfunction
,那么您就可以检查
a
是否是函数(并执行
a()
,而不是假设函数已经执行)。这实际上并不能回答问题。OP知道
myFunction
是一个函数(他/她必须知道它)。他/她想要一个能捕捉程序员错误的读心器。这是一个难以置信的快速否决票,你能解释一下原因吗?不是我的否决票,但我把这个问题理解为当他们意外键入
a=myfunctiona=myfunction()时。这不会有帮助。但是
a=myfunction
不会产生任何错误。这是一个有效的JS语句。@Juhana如果您声明了
a=myfunction
,那么您就可以检查
a
是否是函数(并执行
a()
,而不是假设函数已经执行)。这实际上并不能回答问题。OP知道
myFunction
是一个函数(他/她必须知道它)。他/她想要一个能捕捉程序员错误的读心器。