Object.getOwnPropertyNames和Object.keys
返回对象自己(非原型继承的属性)的属性名称,包括函数。
方法:
Object.getOwnPropertyNames(object);
Object.keys(object);
参数:
object,如果不是object类型,则引发TypeError异常。
例子:
'use strict'; (function(){ if(!Object.getOwnPropertyNames){ console.log('浏览器不支持getOwnPropertyNames'); return; } //人类的构造函数 var person = function(name, age, sex){ this.name = name; this.age = age; this.sex = sex; this.sing = function(){ console.log('sing'); } } //new 一个ladygaga var gaga = new person('ladygaga', 26, 'girl'); //给嘎嘎发放一个不可枚举的身份证 Object.defineProperty(gaga, 'id', { value : '1234567890', enumerable : false }); //查看gaga的个人信息 var arr = Object.getOwnPropertyNames(gaga); document.write(arr); //output: name,age,sex,sing,id document.write('</br>');
//注意和getOwnPropertyNames的区别,不可枚举的id没有输出 var arr1 = Object.keys(gaga); document.write(arr1); //output: name,age,sex,sing })();
上面的例子说明了Object.getOwnPropertyNames和Object.keys的区别,即Object.keys只适用于可枚举的属性,而Object.getOwnPropertyNames返回对象自动的全部属性名称。
IE6、7、8不支持