1、要取得对象上所有可枚举的实例属性,可以使用ECMAScript 5
的Object.keys()方法。这个方法接收一个对象作为参数,
返回一个包含所有可枚举属性的字符串数组返回值是个数组
跟for in相比:如果原型对象上也有开发者自己添加的属性和方法,for in管给他循环出来。
但是Object.keys()只针对实例上的可枚举属性。
2、你想要得到所有实例属性,无论它是否可枚举,都可以使用Object.getOwnPropertyNames()方法
<script>
// 要取得对象上所有可枚举的实例属性,可以使用ECMAScript 5
// 的Object.keys()方法。这个方法接收一个对象作为参数,
// 返回一个包含所有可枚举属性的字符串数组
function Person() {
};
Person.prototype.name = "zs";
Person.prototype.age = '52';
Person.prototype.sex = 'man';
//这个实例就是原型对象
var pro = Object.keys(Person.prototype);
console.log(pro);// ['name','52','man']
// 你想要得到所有实例属性,无论它是否可枚举,都可以使用Object.getOwnPropertyNames()方法
console.log(Object.getOwnPropertyNames(Person.prototype)) //["constructor", "name", "age", "sex"]
var person1 = new Person();
person1.name = "zhang";
person1.sex = "man";
person1.age = "20";
console.log(Object.getOwnPropertyNames(person1)) //["name", "sex", "age"]
console.log(Object.getOwnPropertyNames(person1)) //["name", "sex", "age"]
</script>