相关疑难解决方法(0)

ES6是否为对象属性引入了明确定义的枚举顺序?

ES6是否为对象属性引入了明确定义的枚举顺序?

var o = {
  '1': 1,
  'a': 2,
  'b': 3
}

Object.keys(o); // ["1", "a", "b"] - is this ordering guaranteed by ES6?

for(let k in o) {
  console.log(k);
} // 1 2 3 - is this ordering guaranteed by ES6?
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

50
推荐指数
3
解决办法
1万
查看次数

查看JS对象的所有键,甚至是getter定义的键

我想要JSON.stringify一个对象的所有属性,包括那些通过getter定义的属性.但是,当我调用JSON.stringify一个对象时,省略了通过getter定义的属性:

> const obj = {key: 'val'}
undefined

> JSON.stringify(obj)
'{"key":"val"}'

> Object.defineProperty(obj, 'getter', {get: () => 'from getter'})
{ key: 'val' }

> obj.getter
'from getter'

> JSON.stringify(obj)
'{"key":"val"}'
Run Code Online (Sandbox Code Playgroud)

我希望看到:

> JSON.stringify(obj)
'{"key":"val", "getter": "from getter"}'
Run Code Online (Sandbox Code Playgroud)

这可能吗?Object.keys也没有检测到吸气剂:

> Object.keys(obj)
[ 'key' ]
Run Code Online (Sandbox Code Playgroud)

你能查询一下getter键吗?或者你必须提前知道他们的名字吗?

javascript

4
推荐指数
1
解决办法
764
查看次数

标签 统计

javascript ×2

ecmascript-6 ×1