Object.getOwnPropertyNames和Object.keys區別

返回對象本身(非原型繼承的屬性)的屬性名稱,包括函數。 html

方法: 瀏覽器

  Object.getOwnPropertyNames(object); 函數

  Object.keys(object); this

參數: spa

  object,若是不是object類型,則引起TypeError異常。 code

例子:   htm

複製代碼
'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不支持 blog

 轉載:http://www.cnblogs.com/chollaflower/archive/2013/07/20/3203210.html 繼承

相關文章
相關標籤/搜索