小编Pro*_*OOB的帖子

JavaScript可以优化此对象吗?

想象一下,我们定义了一个像这样的新对象:

const foo = {number1: 1, number2: 2}
Run Code Online (Sandbox Code Playgroud)

这应该定义一个具有这两个属性的新"隐藏类".

现在假设我使用ES6类语法定义了一个新类.

class Numbers {
  constructor() {
    this.number1 = 1
    this.number2 = 2
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我从中创建一个新对象.

const bar = new Numbers()
Run Code Online (Sandbox Code Playgroud)

现在的问题是:"隐藏类"是否与隐藏类bar相同foo

因为我想象的是第一个定义将创建一个具有两个属性的新"隐藏类",但第二个将创建一个新的"隐藏类",然后它将创建一个带有一个属性的新"隐藏类",然后创建还有另一个属性的"隐藏类"导致三个"隐藏类"链接在一起.

有人可以澄清一下吗?如果我的假设是正确的那么新的"ES6类语法"确实更慢.

基于文章:JavaScript引擎基础:形状和内联缓存·Mathias Bynens

javascript performance javascript-engine es6-class

6
推荐指数
1
解决办法
88
查看次数