Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:如何解释和理解参数似乎没有价值的函数?_Javascript_Parameters_Nested - Fatal编程技术网

JavaScript:如何解释和理解参数似乎没有价值的函数?

JavaScript:如何解释和理解参数似乎没有价值的函数?,javascript,parameters,nested,Javascript,Parameters,Nested,开始学习JavaScript,并开始阅读《雄辩的JavaScript》一书。我在理解hummus函数中的因子参数时有点困难。有人能帮我理解因子的起始值是多少吗?我可以看到成分函数的值,但似乎无法理解因子的值。谢谢你的帮助 const hummus = function(factor) { const ingredient = function(amount, unit, name) { let ingredientAmount = amount * factor; if (

开始学习JavaScript,并开始阅读《雄辩的JavaScript》一书。我在理解
hummus函数
中的
因子
参数时有点困难。有人能帮我理解
因子的起始值是多少吗?我可以看到
成分函数的值
,但似乎无法理解
因子
的值。谢谢你的帮助

 const hummus = function(factor) {
  const ingredient = function(amount, unit, name) {
    let ingredientAmount = amount * factor;
    if (ingredientAmount > 1) {
      unit += "s";
    }
    console.log(`${ingredientAmount} ${unit} ${name}`);
  };
  ingredient(1, "can", "chickpeas");
  ingredient(0.25, "cup", "tahini");
  ingredient(0.25, "cup", "lemon juice");
  ingredient(1, "clove", "garlic");
  ingredient(2, "tablespoon", "olive oil");
  ingredient(0.5, "teaspoon", "cumin");
};

您的示例中没有显示
因子的值。某个地方需要调用,比如
var x=hummus(2)
或诸如此类的代码,这样您就可以知道在该实例中传递给factor的是什么。

在代码示例中,一个函数被分配给常量
成分

const ingredient = function(amount, unit, name) {
    let ingredientAmount = amount * factor;
    if (ingredientAmount > 1) {
      unit += "s";
    }
    console.log(`${ingredientAmount} ${unit} ${name}`);
  };
一旦你有了一个函数,你就可以调用它,它是
成分(1,“can”,“chickpeas”)

类似地,您需要调用
hummus
,可能类似于
hummus(0.3)
hummus(1)
传递一个值

您的代码不包含对hummus的调用,factor的值将根据您在调用时传递给它的值进行设置


如果调用
hummus
时像
hummus()
一样没有值,则在这种情况下,factor将设置为
undefined

此处不显示factor的值,但您输入的任何值都表示您计划生成的hummus量。例如,
hummus(2)
将是两批hummus

然后,内部函数
配料
将根据批次数量确定所需的每种配料的数量,如果配料数量(根据数量乘以批次数量)大于1,它将在字符串中添加一个“s”使其成为复数

书中的这个例子让我非常困惑的是这里引入了字符串插值:console.log(
${ingredientAmount}${unit}${name}
)。在这里介绍之前,本书未对此进行讨论。对于代码识别字符串插值而言,反勾号(而不是单引号或双引号)非常重要

上的
hummus
函数的输出示例帮助我更好地理解它


就像字符串插值一样。

如果不知道在哪里调用了
hummus
,就不可能说hummus是一个函数。它采用参数“factor”。与JavaScript中的C语言、C++语言或java语言:<代码>不同,函数是一流的对象,因为它们可以具有与任何其他对象一样的属性和方法。它们与其他对象的区别在于可以调用函数。简言之,它们是函数对象。
:问:这有帮助吗?