如何遍历对象,一般会想到for-inletobj={a:"Jane",b:"Kevin",};for(letkinobj){console.log(k,obj[k]);}//输出结果//aJane//bKevin但是for-in会遍历对象的原型链,以及一些继承的属性会被遍历,如果只想遍历对象本身的属性,这时候就要判断了letobj={a:"Jane",b:"Kevin",};letnewObj=Object.create(obj);newObj.c="Duke";newObj.e="James";for(letkinnewObj){console.log(k,newObj[k]);}//输出//cDuke//eJames//aJane//bKevinfor(letkinnewObj)if(newObj.hasOwnProperty(k)){{console.log(k,newObj[k]);}}//输出结果//cDuke//eJames接下来,我们尝试一些其他的方式。ES6提供了其他的for-of,可以方便的遍历Array,Map,Set,String,一些类数组如arguments等数据类型,但是不能遍历普通的object对象。查阅资料得知,for-of可以遍历的数据类型都提供迭代器接口。那么如果我们在对象上实现一个迭代器接口,会发生什么情况呢?newObj[Symbol.iterator]=function(){letindex=0;让自己=这个;让keys=Object.keys(self);return{next(){if(index
