2016-09-08 1 views
3

オブジェクトの構造を固定し、プロパティの値を変更するだけでプロパティを削除/追加するのではなく、JavaScriptエンジンが最適化するようにします。コンストラクタのプロパティにundefinedを代入する

var MyClass = function(){ 
    this.prop = undefined; 
}  
var a = new MyClass(); 

それは本当にアプリの実行を向上させた場合、それを使用することができますが、私は、これは非常に厄介と日陰のJavaScriptハックの一つ見つけます。

フロントエンドアプリケーションでこのトリックについて懐疑的ですが、100sのクラスとコンポーネントで構成される複雑なものでも、私は少し懐疑的です。

実際には、プロパティの初期値をコンストラクタに割り当てるのが理にかなっていますか?それとも、ほとんど気付かれない仮想的なパフォーマンスの最適化ですか?

答えて

1

実際には、プロパティの初期値をコンストラクタに割り当てることは理にかなっていますか?

はい、絶対に。これは、最適化コンパイラと人間の読者の両方にとって明快さを向上させます。これは、より大きなコードベースでは特に重要です。

しかし、初期化されたプロパティを持たないオブジェクトを構築しようとすると、より一般的な設計上の瑕疵があるかもしれません。合理的な初期値がわからなくても、あなたがそれらを知るまで、何かをインスタンス化してはいけません。

関連する問題