小编Rav*_*are的帖子

JavaScript中Object.defineProperty()的奇怪行为

我在玩下面的javascript代码。了解后Object.defineProperty(),我正面临一个奇怪的问题。当我尝试在浏览器或VS代码中执行以下代码时,输​​出与预期不符,而如果我尝试调试代码,则输出正确

当我调试代码并评估配置文件时,我可以name & age在对象中看到该属性,但是在输出时,它仅显示该name属性

//Code Snippet 
let profile = {
  name: 'Barry Allen',
}

// I added a new property in the profile object.
Object.defineProperty(profile, 'age', {
  value: 23,
  writable: true
})

console.log(profile)
console.log(profile.age)
Run Code Online (Sandbox Code Playgroud)

现在这里的预期输出应该是

{name: "Barry Allen", age: 23}
23
Run Code Online (Sandbox Code Playgroud)

但我得到的输出为。请注意,我能够访问age之后定义的属性。我不确定为什么console.log()会这样。

{name: "Barry Allen"}
23 
Run Code Online (Sandbox Code Playgroud)

javascript

70
推荐指数
3
解决办法
2782
查看次数

标签 统计

javascript ×1