Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 围绕对象键的数组表示法_Javascript_Generator - Fatal编程技术网

Javascript 围绕对象键的数组表示法

Javascript 围绕对象键的数组表示法,javascript,generator,Javascript,Generator,在学习Generator时遇到此代码。想知道在使用[]包围对象属性的地方,这种语法的术语是什么?我们可以将其应用于任何其他属性,还是仅适用于Symbol.iterator 另外,是否可以使其像任何其他函数一样可重用,例如下面的代码 let obj = { a: 'alex', [Symbol.iterator] : function* () { yield this.a; } } 在现代JavaScript中,括号内的属性名(如[Symbol.iterator])意味着应计

在学习
Generator
时遇到此代码。想知道在使用
[]
包围对象属性的地方,这种语法的术语是什么?我们可以将其应用于任何其他属性,还是仅适用于
Symbol.iterator

另外,是否可以使其像任何其他函数一样可重用,例如下面的代码

let obj = {
  a: 'alex',
  [Symbol.iterator] : function* () {
    yield this.a;
  }
}

在现代JavaScript中,括号内的属性名(如
[Symbol.iterator]
)意味着应计算括号内的表达式以确定声明中的属性名

表达式
Symbol.iterator
计算为可分辨属性的
Symbol
实例,以标识iterable对象的迭代器函数属性

在“老式”JavaScript中,代码可以写成:

let obj = {
  a: 'alex',
  [Symbol.iterator] : function* () {
    yield this.a;
  },
  getA: function() {
    return this.a
  }
}


console.log(obj.getA())//Perhaps obj.[Symbol.iterator]()............... ?
(显然,这不是真正的“老式”JavaScript,因为
符号
功能是新的,但希望它是清楚的。)

可能重复的
let obj = {
  a: 'alex',
  getA: function() {
    return this.a
  }
};

obj[Symbol.iterator] = function* () {
    yield this.a;
};