通过传递参数在函数体内还是外部声明函数?

时间:2019-07-08 11:37:32

标签: javascript reactjs

我们有一个函数,它将多次运行-现在是外部函数-(例如带有react,因此它可以更清楚地定义我要问的内容)。如果在外部函数体内定义函数,则可以利用闭包的优势,因此可以访问外部函数的作用域。

在第二种情况下,我们独立定义函数,因此在函数主体之外。这样,我们将无法访问外部函数的作用域,因此我们必须将所需的参数作为参数传递。

重要的问题是:在外部声明该函数或在一个函数内部声明该函数(将被多次调用)之间是否存在明显的性能差异?换句话说,每次外部函数运行时,外部函数体内的函数声明会花费时间吗?

查看示例:

import React, { useState } from "react";

const outerOnChange = ({ target: { value } }, setValue) => setValue(value);

const Input = () => {

  const [ value, setValue ] = useState("");

  const innerOnChange = ({ target: { value: newValue } }) => setValue(newValue);

  const onChange = e => {
    outerOnChange(e, setValue);
    innerOnChange(e);
  };

  return <input onChange={onChange} value={value} />;
};

0 个答案:

没有答案