javascript内联函数-结果是什么?

此函数返回什么?我对这种术语不熟悉。

let x = 2;
let y = 8;
const a = function(b) { return function(c) { return x + y + Math.abs(b) + c; } };

// Statement will go here

const fn = a(x);

对于上述功能,我理解x + y部分,但是下半部分所指的b和c是什么?是(x)调用const a吗?

我发现唯一提到相似命名法的是function x y a b in javascript,但是讨论中没有讨论如何查找返回的内容。也许我不是在搜索正确的东西,这就是为什么我的搜索仅返回相似的一件事的原因。

xiangjibo 回答:javascript内联函数-结果是什么?

您在这里看到的称为currying,与之相关,但与部分应用程序不同。

重点是将带有多个参数的函数调用分解为带有单个参数的多个函数调用。

在这种情况下,a是一个函数,该函数返回一个函数,该函数返回将x的绝对值yb相加的结果(来自调用)到a)和c(从调用到a的返回值)。

,

a是接受参数b的函数的结果。该函数返回另一个函数,该函数接受参数c并返回x + y + c加上绝对值b

let x = 2;
let y = 8;
const a = function(b) {
  console.log({
    b
  });
  return function(c) {
    console.log({
      c
    });
    return x + y + Math.abs(b) + c;
  }
};

// Statement will go here

const fn = a(x);

fn(12) // will have b=2 and c=12

,

似乎是一个函数指针。 function(b)接受传递到函数指针x中的参数a,此函数指针引用function(b),但不同于普通函数立即返回值function(b)返回另一个函数function(c),该函数当然接受一个参数,并且在调用const fn时应填写该参数。

我的理论是,例如,当您调用fn fn(3)时,您将得到与2 + 8 + Math.abs(2) + 3;相等的结果

如果没有const fn,您也可以像a(2)(3)一样调用a,我相信会获得相同的结果。

希望这会有所帮助。

本文链接:https://www.f2er.com/2997435.html

大家都在问