【问题标题】:javascript syntax questioonjavascript语法问题
【发布时间】:2020-12-30 13:22:09
【问题描述】:

假设我有以下代码:

function c (f,i) {
  let x = i;
  if (f(x,i)){
     x--;
  }
  if (f(x,2)) {
     console.log(1);
  }
  else {
     console.log(2);
  }
}

if 语句中到底发生了什么,我不明白它背后的语法。 f 不是函数,它是一个变量,那么这里会发生什么?它等于 f * ( x * i) 吗?这种语法背后的操作数是什么。 提前致谢

【问题讨论】:

  • “f 不是函数,它是一个变量”——两者并不排斥。事实上,f(x,i) 是一个调用表达式,所以除非f 是一个函数,否则这会抛出。
  • 实际上,我假设f 是一个函数。您可以将函数传递给javascript中的其他函数
  • 如果'f'不是函数,你的代码是错误的,你会收到错误'Uncaught TypeError: f is not a function';如果您需要将“f”作为参数函数传递,请查看@edwin 建议。

标签: javascript if-statement syntax


【解决方案1】:

一个变量也可以包含一个函数。可以像这样调用c

c(function(x, i) {/* do some check with x and i */}, 10);

在 if 语句中,调用您传递的函数进行检查。像这样的函数称为回调函数。您必须将其传递给c 函数,如上例所示。因此,如果您调用c,您还可以确定c 所做的检查是如何完成的。

【讨论】:

    猜你喜欢
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 2016-07-30
    • 2012-02-13
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多