Javascript 如何迭代所有属性,例如[Symbol.iterator]
以下代码Javascript 如何迭代所有属性,例如[Symbol.iterator],javascript,iterator,Javascript,Iterator,以下代码 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
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循环中。
如何在打印所有属性(包括特殊属性,如[Symbol.iterator])的地方创建for循环
注意:问题不在于如何编写正确的迭代器函数,我知道我还没有这样做。Symbol.iterator是一个符号,你不能那样列出它们,你必须使用Object.getOwnPropertySymbols(你的_对象)来列出它们
为了。。。在里面循环确实列出了对象的属性,但符号与野兽有点不同,它们需要特殊处理。Symbol.iterator是一个符号,您不能这样列出它们,您必须使用object.getOwnPropertySymbols(您的_对象)来列出它们。太好了,谢谢。请重新提交作为一个答案,以便我可以信用你!