9.5

1. 用for in来循环打印属性是会把原型里面的属性都打印出来的。如果用Object.keys()来打印的话只会打印实例属性。而且Object.keys()的属性是一个数组的形式。

2. enumerable是可枚举的意思,for in和Object.keys都只能打印出可枚举的属性,如果属性用Object.defineProperty来定义一个对象的某个属性值为不可枚举的,那么就不能答应出来。

3. 如果想要得到对象的所有实例属性,不论他是不是可以枚举的,可以用getOwnPropertyNames();这个方法来获取。

4. getOwnPropertyNames的用法是Object.getOwnPropertyNames(这个里面是对象。)

5. hasOwnProperty则是直接用某一个实例对象来调用这个方法。

原文地址:https://www.cnblogs.com/zhuni/p/5843934.html