Javascript 什么';函数与函数()之间的区别是什么?
也许我的问题对你来说很愚蠢。。。不幸的是,我在关于回调的教程中没有找到答案。请帮帮我 我想找出两者之间的区别 1.) 及 (二) 借 示例2中的括号是由什么产生的?)?我想,这与同步/异步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
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.
}