鍍金池/ 問(wèn)答/HTML/ JavaScript 怎樣獲得對(duì)象身上的所有屬性和方法 包括不可枚舉的?

JavaScript 怎樣獲得對(duì)象身上的所有屬性和方法 包括不可枚舉的?

我想獲得一個(gè)對(duì)象身上的所有屬性和方法,需要返回一個(gè)新對(duì)象包括不可枚舉的在內(nèi),我可以肯定js有一個(gè)內(nèi)置對(duì)象能完成需求,可惜該死的Name太長(zhǎng)了再加上許久不用忘啦,特此求助...在線(xiàn)急等跪求解答!

備注:是返回一個(gè)新的對(duì)象,包括屬性名和屬性值,并且包括不可枚舉的

回答
編輯回答
吢涼
Object.getOwnPropertyNames() 返回一個(gè)數(shù)組,該數(shù)組對(duì)元素是 obj自身?yè)碛械拿杜e或不可枚舉屬性名稱(chēng)字符串。 數(shù)組中枚舉屬性的順序與通過(guò) for...in 循環(huán)(或 Object.keys)迭代該對(duì)象屬性時(shí)一致。數(shù)組中不可枚舉屬性的順序未定義。
2018年8月6日 02:54
編輯回答
毀與悔

for in

2017年2月16日 17:03
編輯回答
笨笨噠

Object.getOwnPropertyDescriptors么

2018年6月16日 22:05
編輯回答
菊外人

Object.getOwnPropertyNames()方法,參見(jiàn)阮一峰《ECMAScript6 入門(mén)》-對(duì)象的擴(kuò)展
圖片描述

2017年5月3日 06:33
編輯回答
尛憇藌

設(shè)置enumerable屬性為true皆可以,貼上代碼:

export const modifyObjAttr=()=>{
  let person={name:'張三',age:30};
  Object.defineProperty(person,'name',{
    writable:false,
    value:'李四',
    configurable:false,//設(shè)置false就不能對(duì)該屬性修改
    enumerable:true
  })
2018年5月15日 05:42
編輯回答
苦妄
function Hello() {
    
}
Hello.prototype.name = function () {
    return 'Hello';
}

Hello.prototype.age = function () { 
    return 18;
}
Hello.prototype.sex=true
let hello = new Hello();
// 遍歷所有的屬性和方法
for (let p in hello) {
    console.info(p)
}
2018年1月15日 09:59