在JavaScript中对象和数组一样是可以遍历的
对象的遍历就是依次取出对象中所有的属性和方法
在JS中可以通过高级for循环来遍历对象
以下代码的含义: 将指定对象中所有的属性和方法的名称取出来了依次的赋值给key这个变量
for(let key in obj){}
<script>
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
say() {
console.log(this.name, this.age);
}
}
let p = new Person("Durant", 30);
for (let key in p) {
console.log(key);
}
</script>
控制台输出:
注意:原型对象中的属性和方法不会被遍历
修改:
<script>
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
this.say = function() {
console.log(this.name, this.age);
}
}
}
let p = new Person("Durant", 30);
for (let key in p) {
console.log(key);
}
</script>
控制台输出:
如何遍历属性的值和具体方法呢?我们知道对属性和方法的操作有两种方法
实例对象.属性 实例对象.方法
实例对象[“属性”] 实例对象[“方法”]
所以,遍历属性的值和具体方法我们用**实例对象[key]**的方式
控制台输出:
如果不想要函数的具体方法,可以这么做
<script>
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
this.say = function() {
console.log(this.name, this.age);
}
}
}
let p = new Person("Durant", 30);
for (let key in p) {
if (p[key] instanceof Function) {
continue;
}
console.log(p[key]); // p["name"] / p["age"] / p["say"]
}
</script>
控制台输出: