返回對象本身(非原型繼承的屬性)的屬性名稱,包括函數。瀏覽器
方法:函數
Object.getOwnPropertyNames(object);this
Object.keys(object);spa
參數:code
object,若是不是object類型,則引起TypeError異常。對象
例子: blog
'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返回對象自動的所有屬性名稱。繼承
IE六、七、8不支持get