【问题标题】:Function that Return Function -?返回函数的函数 - ?
【发布时间】:2018-10-17 06:41:30
【问题描述】:

我刚刚开始学习 JavaScript 并进行一些编码练习。抱歉,这可能是一个愚蠢的问题。我很难理解下面返回函数的函数的答案。

存取函数接受一个对象并返回一个函数。
返回函数可以访问给定对象的属性和值。

我不明白的部分是返回函数如何访问对象的属性和值而不在全局范围内定义?

抱歉,如果问题不清楚。我想知道为什么返回的函数能够在不使用 for in.. 循环的情况下访问属性和值。

我一直在尝试查找有关此的文章/博客文章,但找不到任何东西。如果你能澄清,我很感激!!

const accessor = obj => {
  return (prop, value) => {
    if (value === undefined) {
      return obj[prop];
    } else {
      obj[prop] = value;
    }
  };
};

accessExample = accessor({ foobar: [7, 8, 9] });
accessExample('foobar');

//returns [7, 8, 9]

【问题讨论】:

标签: javascript function higher-order-functions


【解决方案1】:

这是由于关闭而发生的。 javascript 中的所有函数都形成闭包。你可以从这里阅读更多关于它的信息Closures

【讨论】:

    【解决方案2】:

    函数实际上是在 JS 中创建作用域。任何变量都可以在嵌套函数中访问。 Here is a good link to explain

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-31
      • 2011-11-29
      • 1970-01-01
      • 2015-02-13
      • 2021-12-18
      • 2015-10-01
      • 2010-09-15
      相关资源
      最近更新 更多