为什么使用 return 关键字作为方法?

gac*_*cat 2 javascript

我正在浏览文档并发现了这段代码:

const LIMIT = 3;

const asyncIterable = {
  [Symbol.asyncIterator]() {
    let i = 0;
    return {
      next() {
        const done = i === LIMIT;
        const value = done ? undefined : i++;
        return Promise.resolve({ value, done });
      },
      return() {
        // This will be reached if the consumer called 'break' or 'return' early in the loop.
        return { done: true };
      },
    };
  },
};

(async () => {
  for await (const num of asyncIterable) {
    console.log(num);
  }
})();
// 0
// 1
// 2
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我无法理解为什么 return 用作这样的方法return(){}?我尝试运行这段代码并且运行良好。那么,这是 JavaScript 的新功能吗?

Nor*_*und 5

这是一个方法定义,而不是返回语句。

类似于这里的return属性object

const object = {
    return: () => {
        return "Hello world";
    }
};

console.log(object.return()); // Hello world
Run Code Online (Sandbox Code Playgroud)

  • 我没有从OP那里得到这样的印象。他们知道这是一种方法,但不明白为什么,考虑到标题中的“返回关键字”。我对这个问题的理解是OP问为什么“return”可以用作函数名称。 (4认同)
  • [^](/sf/ask/5246801661/#comment132270941_74954327)@Andreas仅仅因为它在规范中并不意味着它不是一个错误的命名约定。我认为,与语言关键字的任何重叠最多可能会让_一些开发人员_感到困惑(恰当的例子:这个问题) (3认同)