【问题标题】:Why do we have to define Symbol.iterator with [Symbol.iterator] ? for iterables in javascript?为什么我们必须用 [Symbol.iterator] 定义 Symbol.iterator?用于 javascript 中的可迭代对象?
【发布时间】:2017-03-02 09:54:06
【问题描述】:

js中为什么要使用那些[]来定义@@iterator协议。

// Works smoothly
var iterable = {
   [Symbol.iterator]() {}
}

// This fails with SyntaxError: unexpected token . 
var iterable = {
   Symbol.iterator() {}
}

【问题讨论】:

    标签: javascript iterator iterable


    【解决方案1】:

    因为对象字面量中的键必须是有效的标识符(“变量名”),并且按字面意思作为给定的名称。如果要使用表达式作为键(Symbol.iterator 的值,而不是字面名称“Symbol.iterator”),则需要使用computed property { [...]: ... } 语法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-15
      • 2021-10-21
      • 2017-06-05
      • 2021-07-14
      • 2019-01-27
      • 2023-01-23
      • 1970-01-01
      相关资源
      最近更新 更多