Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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 如何迭代所有属性,例如[Symbol.iterator]_Javascript_Iterator - Fatal编程技术网

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(您的_对象)来列出它们。太好了,谢谢。请重新提交作为一个答案,以便我可以信用你!