函数定义一次之后可以再更改参数吗?

问题描述 投票:0回答:1
  function convertToFahrenheit(celsius) {
    return (celsius * 9 / 5) + 32;
  }

  function convertToCelsius(fahrenheit) {
    return (fahrenheit - 32) * 5 / 9;
  }

  function convertTemperature(degrees, unit) {
    if (unit === 'C') {
      const result = convertToFahrenheit(degrees);    /* How can we use "degrees" here? */
      return `${result}F`;
    } else if (unit === 'F') {
      const result = convertToCelsius(degrees);       /* How can we use "degrees" here? */
      return `${result}C`;
    }
  }

  console.log(convertTemperature(25, 'C'));
  console.log(convertTemperature(86, 'F'));

正如你在上面的代码中看到的,定义了两个函数——convertToFahrenheit(celsius)和convertToCelsius(fahrenheit)。但后来,当调用这些函数时,参数名称被更改为度数。怎么可能?

起初,我认为,当在新函数convertTemperature(度,单位)中调用函数时,为convertToFahrenheit(celsius)和convertToCelsius(fahrenheit)传递的参数是“度”本身。我说得对吗?

javascript function parameters arguments
1个回答
0
投票

参数称为

degrees
参数称为
celcius
fahrenheit
。参数的名称不需要与形参的名称匹配。当您认为参数根本不需要与名称关联时,这一点应该特别明显:

function func(param) {
}

func(1)  // The argument is not stored in a variable and has no associated name

当函数在新函数内被调用时。 。 .,为convertToFahrenheit(celsius) 和convertToCelsius(fahrenheit) 传递的参数是“度”本身

degrees
持有/指向的对象传递给,例如,
convertToFahrenheit
。然后,传递的对象将存储在
fahrenheit
参数变量中。此时,
degrees
fahrenheit
是两个指代同一个对象的名称。

© www.soinside.com 2019 - 2024. All rights reserved.