📅  最后修改于: 2023-12-03 15:37:54.293000             🧑  作者: Mango
在 JavaScript 中,可以通过 Object.keys() 方法获取由指定对象的所有可枚举属性名称组成的数组。但是,如果对象中有函数属性,我们想获取函数属性的名称数组,可以采用以下方法:
const obj = {
foo: 'bar',
baz: function() {},
qux: function() {}
};
const functionNames = Object.getOwnPropertyNames(obj).filter(function(property) {
return typeof obj[property] === 'function';
});
console.log(functionNames); // ['baz', 'qux']
上面的代码中,我们使用 Object.getOwnPropertyNames() 方法获取对象的所有属性名称组成的数组,然后使用 Array.filter() 方法过滤出函数属性,最后得到函数属性的名称数组。
需要注意的是,Object.getOwnPropertyNames() 方法获取的属性名称包括可枚举和不可枚举的属性,如果要过滤掉不可枚举的属性,可以使用 Object.keys() 方法代替 Object.getOwnPropertyNames() 方法。
const obj = {
foo: 'bar',
baz: function() {},
qux: function() {}
};
const functionNames = Object.keys(obj).filter(function(property) {
return typeof obj[property] === 'function';
});
console.log(functionNames); // ['baz', 'qux']
上面的代码中,我们使用 Object.keys() 方法获取对象的所有可枚举属性名称组成的数组,然后使用 Array.filter() 方法过滤出函数属性,最后得到函数属性的名称数组。