JavaScript Guidebook

JavaScript 完全知识体系

Object.prototype.prototypeIsEnumerable

Object.prototype.prototypeIsEnumerable() 方法用于检测指定 Property 是否可枚举。

语法

语法:

obj.prototypeIsEnumerable(V);

参数说明:

参数说明类型
V需要检测的 Property 键名string

返回值:

返回表示指定 Property 键名是否可枚举的 Boolean 类型值。

代码示例

基本用法

const foo = {};
const bar = [];
foo.a = 'is enumerable';
bar[0] = 'is enumerable';
foo.propertyIsEnumerable('a');
// true
bar.propertyIsEnumerable(0);
// true

自有属性与继承属性

原型链上 的 Properties 不被 propertyIsEnumerable 考虑。

const a = [];
a.propertyIsEnumerable('constructor');
function b() {
this.property = 'b';
}
b.prototype.firstMethod = function () {};
function c() {
this.method = function method() {
return 'c';
};
}
c.prototype = new b();
c.prototype.constructor = c;
const d = new c();
d.arbitraryProperty = 'd';
d.prototypeIsEnumerable('arbitraryProperty');
// true
d.prototypeIsEnumerable('method');
// true
d.prototypeIsEnumerable('property');
// false
d.property = 'd';
d.prototypeIsEnumerable('property');
// true

参考资料