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=myfunction当他们真的想输入a=myfunction()时代码>。这不会有帮助。但是a=myfunction
不会产生任何错误。这是一个有效的JS语句。@Juhana如果您声明了a=myfunction
,那么您就可以检查a
是否是函数(并执行a()
,而不是假设函数已经执行)。这实际上并不能回答问题。OP知道myFunction
是一个函数(他/她必须知道它)。他/她想要一个能捕捉程序员错误的读心器。这是一个难以置信的快速否决票,你能解释一下原因吗?不是我的否决票,但我把这个问题理解为当他们意外键入a=myfunction当他们真的想输入a=myfunction()时代码>。这不会有帮助。但是a=myfunction
不会产生任何错误。这是一个有效的JS语句。@Juhana如果您声明了a=myfunction
,那么您就可以检查a
是否是函数(并执行a()
,而不是假设函数已经执行)。这实际上并不能回答问题。OP知道myFunction
是一个函数(他/她必须知道它)。他/她想要一个能捕捉程序员错误的读心器。这是一个难以置信的快速否决票,你能解释一下原因吗?不是我的否决票,但我把这个问题理解为当他们意外键入a=myfunction当他们真的想输入a=myfunction()时代码>。这不会有帮助。但是a=myfunction
不会产生任何错误。这是一个有效的JS语句。@Juhana如果您声明了a=myfunction
,那么您就可以检查a
是否是函数(并执行a()
,而不是假设函数已经执行)。这实际上并不能回答问题。OP知道myFunction
是一个函数(他/她必须知道它)。他/她想要一个能捕捉程序员错误的读心器。这是一个难以置信的快速否决票,你能解释一下原因吗?不是我的否决票,但我把这个问题理解为当他们意外键入a=myfunction当他们真的想输入a=myfunction()时代码>。这不会有帮助。但是a=myfunction
不会产生任何错误。这是一个有效的JS语句。@Juhana如果您声明了a=myfunction
,那么您就可以检查a
是否是函数(并执行a()
,而不是假设函数已经执行)。这实际上并不能回答问题。OP知道myFunction
是一个函数(他/她必须知道它)。他/她想要一个能捕捉程序员错误的读心器。