Object.getOwnPropertyNames()

admin發表於2018-09-09

此方法可以獲取物件的屬性名稱,並儲存在陣列中。

返回值是存放屬性名稱的陣列。

特別說明:必須是自有屬性,自有屬性就是非原型鏈繼承的屬性。

更多內容參閱JavaScript Object 物件一章節。

語法結構:

[JavaScript] 純文字檢視 複製程式碼
Object.getOwnPropertyNames(object)

引數解析:

(1).object:必需,要獲取屬性名稱的物件。

瀏覽器支援:

(1).IE9+瀏覽器支援此方法。

(2).edge瀏覽器支援此方法

(3).谷歌瀏覽器支援此方法。

(4).火狐瀏覽器支援此方法。

(5).opera瀏覽器支援此方法。

(6).safria瀏覽器支援此方法。

程式碼例項:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
function Antzone(){
  this.webName="螞蟻部落";
  this.age=6;
}
Antzone.prototype={
  address:"青島市南區"
}
let antzone=new Antzone();
console.log(Object.getOwnPropertyNames(antzone));

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/09/011522ucele1u4v4jaol93.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

antzone物件中的webName和age是自有屬性,它可以被Object.getOwnPropertyNames方法獲取到,address屬性來自於原型鏈,所以不能夠被方法獲取。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let antzone={
  webName:"螞蟻部落",
  age:6
}
Object.defineProperty(antzone, "url", {
    value: "http://www.softwhy.com",
    enumerable: false
});
console.log(Object.getOwnPropertyNames(antzone));

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/09/011559z4gem2uyu4yii3o7.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

雖然url屬性是不可列舉的,但是Object.getOwnPropertyNames方法依然可以獲取到。