是否值得在变量中保存this.key
的值?this.key vs变量表现
假设我必须每帧都做这个操作,会对速度产生影响吗?
简单的例子:
class Vector3 {
constructor(X = 0, Y = 0, Z = 0) {
this.X = X
this.Y = Y
this.Z = Z
}
toVector2() {
return new Vector2(
(this.Y - this.X) * COS27,
-((this.Y + this.X) * SIN27 + this.Z)
)
}
}
VS
class Vector3 {
constructor(X = 0, Y = 0, Z = 0) {
this.X = X
this.Y = Y
this.Z = Z
}
toVector2() {
const {X, Y, Z} = this
return new Vector2(
(Y - X) * COS27,
-((Y + X) * SIN27 + Z)
)
}
}
当中哪些是更有效率?垃圾回收可以影响性能吗?
在jsperf中编写一个测试用例,并亲自查看。 – sabithpocker
性能差异如此轻微,可以忽略不计。它可以归结为代码可读性和维护。在大型项目中,只要不会极大地影响代码可读性,我就会追求最小的优化。但从理论上讲,它确实会以一种无法察觉的方式影响性能。 –
在大多数浏览器/转发器中,ES6解构赋值仍然比直接属性访问更慢(高达100倍),请参见[six-speed](https://kpdecker.github.io/six-speed/)。 – wOxxOm