作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
代码如下
a = {
b () {return 3;},
[Symbol.iterator] () {return 4;}
};
console.log (a ['b']);
console.log (a [Symbol.iterator]);
console.log (111);
for (var attrib in a) {
console.log (attrib);
console.log (a [attrib]);
}
console.log (222);
打印
function b() {return 3;}
function () {return 4;}
111
b
function b() {return 3;}
222
为什么第二个函数,返回4没有在for循环中打印出来。我如何制作一个打印所有属性的 for 循环,包括 [Symbol.iterator] 等特殊属性?
注意问题不在于如何编写正确的迭代器函数,我知道我还没有这样做。
最佳答案
Symbol.iterator 是一个 Symbol,您不能那样列出它们,您必须使用 Object.getOwnPropertySymbols(your_object) 来列出它们。
For ... in ... 循环确实列出了对象的属性,但符号有点不同,它们需要特殊处理。
关于javascript - 如何遍历所有属性公司。例如[符号.迭代器],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40017424/
我是一名优秀的程序员,十分优秀!