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;
};