Object.keys()
物件和陣列都是鍵值對集合,不同的是,物件是無序鍵值對集合,陣列是有序鍵值對集合。
陣列中的鍵是陣列的索引,物件的鍵是物件的屬性名稱。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼let antzone={ webName:"螞蟻部落", age:4, address:"青島市南區", func:function(){ // code } }
上面物件中,webName、age、address和func就是物件的鍵。
Object.keys方法從名稱可以猜測出,它的作用是用來獲取物件的鍵,也就是物件的屬性名稱或者方法名稱。
特別說明:必須是物件自有屬性,不能來自原型鏈。
ES5新增此方法。
更多Object物件內容參閱JavaScript Object 物件一章節。
語法結構:
[JavaScript] 純文字檢視 複製程式碼Object.keys(object)
引數解析:
(1).object:必需,包含屬性或者方法的物件。
此方法的返回值是一個存放著屬性和方法名稱的陣列。
瀏覽器相容:
(1).IE9+瀏覽器支援此方法。
(2).edge瀏覽器支援此方法。
(3).谷歌瀏覽器支援此方法。
(4).火狐瀏覽器支援此方法。
(5).opera瀏覽器支援此方法。
(6).safria瀏覽器支援此方法。
程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼let obj = { webName: "螞蟻部落", url: "www.softwhy.com", address:"青島市南區", func:function(){ //code } } console.log(Object.keys(obj));
程式碼執行效果截圖如下:
可以看到Object.keys方法可以獲取物件的鍵名,也就是說行或者方法名稱。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let obj = { webName: "螞蟻部落", url: "www.softwhy.com", address:"青島市南區" } Object.defineProperty(obj, "webName", { enumerable:false }) console.log(Object.keys(obj));
程式碼執行效果截圖如下:
鍵必須是可列舉的,否則Object.keys方法無法獲取。
[JavaScript] 純文字檢視 複製程式碼執行程式碼Object.prototype.age = 4; let obj = { webName: "螞蟻部落", url: "www.softwhy.com", address:"青島市南區" } console.log(Object.keys(obj));
程式碼執行效果截圖如下:
無法列舉原型鏈上屬性或者方法名稱。