Javascript 什么';函数与函数()之间的区别是什么?

Javascript 什么';函数与函数()之间的区别是什么?,javascript,node.js,Javascript,Node.js,也许我的问题对你来说很愚蠢。。。不幸的是,我在关于回调的教程中没有找到答案。请帮帮我 我想找出两者之间的区别 1.) 及 (二) 借 示例2中的括号是由什么产生的?)?我想,这与同步/异步javascript有关。请帮我了解后果 这是我的非工作代码: if(T.get('statuses/show/' + tweet.id_str, { include_my_retweet:true }, iRT) === true){ //iRT = I have retweeted console.l

也许我的问题对你来说很愚蠢。。。不幸的是,我在关于回调的教程中没有找到答案。请帮帮我

我想找出两者之间的区别

1.)

(二)

示例2中的括号是由什么产生的?)?我想,这与同步/异步javascript有关。请帮我了解后果

这是我的非工作代码:

if(T.get('statuses/show/' + tweet.id_str, { include_my_retweet:true }, iRT) === true){ //iRT = I have retweeted
   console.log('Not retweeted. ');
}
if(T.get('statuses/show/' + tweet.id_str, { include_my_retweet:true }, iRT()) === true){  //iRT = I have retweeted
console.log('Not retweeted. ');
}
这是我的工作代码:

if(T.get('statuses/show/' + tweet.id_str, { include_my_retweet:true }, iRT) === true){ //iRT = I have retweeted
   console.log('Not retweeted. ');
}
if(T.get('statuses/show/' + tweet.id_str, { include_my_retweet:true }, iRT()) === true){  //iRT = I have retweeted
console.log('Not retweeted. ');
}
这是我的返回函数:

return( noRetweet() );  


function noRetweet() {
  return true;
}    

不清楚您试图做的是函数调用还是函数定义

函数调用

如果是函数调用,
函数
关键字不应出现在此处。函数
f
的调用方式如下:
f(arg)

在第一种情况下,函数
name
获取函数
cb
作为第二个参数。然后,它可以随时调用该函数,或者对其执行任何操作

在第二种情况下,您首先直接调用
cb
(这就是
()
的作用,您也可以使用参数调用它,即
name(input,cb(arg))
),并且此调用的结果(不是函数本身)作为第二个参数传递给
name

name(input, cb());
大致相当于:

var tmpResult = cb();
name(input, tmpResult);
功能定义

如果是函数定义,则缺少函数体。函数的定义如下

 function f(arg){
   // What happens when the function is called.
 }
在这种情况下,第二种情况是无效的。这是一个语法错误,没有任何意义

编辑


添加问题后,您的
if
应该可以正常工作。是否为
true
实际上取决于
T.get
函数的结果。正如我前面所说的,在第一种情况下,您给出的是函数
iRT
,在第二种情况下给出的是它的结果。你应该看看什么才是真正需要的
T.get
,并为它提供适当的参数(我怀疑这是
iRT
的结果,但在不知道这些函数的作用时,我们只能猜测).

一般的想法是,调用函数时参数可以是它们想要的任何东西,只要它们产生结果。但是,定义函数时,参数必须是变量

在下面,您可以看到我用单独的参数定义了每个函数,但是当我调用它时,我可以使用
add()
作为参数,因为它将生成一个可以用作
getNumbers()
的参数的结果

函数添加(x1,x2){
返回x1+x2;
}
函数getNumber(x3,x4){
返回x3+x4;
}
document.getElementById(“math”).innerHTML=getNumbers(3,add(1,2))

您能展示更完整的示例吗?我不明白你的例子。您正在尝试创建或调用
name()
函数吗?第二个是语法错误。第二个是语法错误…谢谢Roque。我尝试编写一个if条件,如果cb已交付,则该条件开始。但我的if条件仅适用于cb()。我觉得,这是不对的…@FelixKling我以为op是在做函数调用。然而,他到底想做什么,实际上还很不清楚。我相应地更新了我的问题。罗克,这就是我所期望的。但它只适用于iRT()。。。这在语法意义上是错误的。不,不是。这只意味着您首先调用了
iRT
,并将其结果提供给
T.get
 function f(arg){
   // What happens when the function is called.
 }