JavaScript中的所有数据类型都是可枚举的吗?
Are all data types in JavaScript enumerable?
我知道对象属性有 3 个标志,使用其中一个我可以设置某个 属性 不可枚举。但是在所有其他情况下,所有类型的数据都是可枚举的吗?
默认情况下,所有属性都是使用简单赋值或通过
属性 initializer 是 enumerable 与数据无关
类型。
通过 Object.defineProperty, Object.defineProperties
等方法定义的属性默认为 不可枚举.
例如:
1.Property Initilaizer(默认可枚举):
const obj = { a: 'foo', b: 123, c: {} };
2.Simple赋值(默认可枚举):
obj.a = 'foo'
obj.b = 123
obj.c = {}
3.Object的方法(默认不可枚举):
obj = {};
Object.defineProperties(obj,
{ a: { value: 'foo' },
{ b: { value: 123 },
{ c: { value: {} }
);
进一步参考 here。
我知道对象属性有 3 个标志,使用其中一个我可以设置某个 属性 不可枚举。但是在所有其他情况下,所有类型的数据都是可枚举的吗?
默认情况下,所有属性都是使用简单赋值或通过 属性 initializer 是 enumerable 与数据无关 类型。
通过
Object.defineProperty, Object.defineProperties
等方法定义的属性默认为 不可枚举.
例如:
1.Property Initilaizer(默认可枚举):
const obj = { a: 'foo', b: 123, c: {} };
2.Simple赋值(默认可枚举):
obj.a = 'foo'
obj.b = 123
obj.c = {}
3.Object的方法(默认不可枚举):
obj = {};
Object.defineProperties(obj,
{ a: { value: 'foo' },
{ b: { value: 123 },
{ c: { value: {} }
);
进一步参考 here。