是否值得在變量中保存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