私はHTML5 Canvasでいくつかのアニメーションをやっています。私は望ましいだろう、オブジェクトのメソッドを、アニメーション化するために探していた場合、パフォーマンスが賢明な(私はIE8を気にしないと仮定した場合):オブジェクトメソッドのsetTimeout - ES5バインドまたはクロージャ?
setTimeout(this.render.bind(this), 15);
または
var self = this;
setTimeout(function() { self.render() }, 15);
私の特定のケースではありません実際に視覚的に違いを生み出すのに十分強い。私はベストプラクティスを見つけようとしています。
bind
で新しい関数を作成すると、クロージャを作成するよりもオーバーヘッドが少なくなると思いますが、専門家に質問したかったのです。
これは私にとっては最適化のような臭いがありますが、あなたの問題が何であるかはわかりませんが、この時間の75%は問題ではないと言います。 – mkoryak
どちらもクロージャを作成しますこれらの関数は、次のようにバインドされています。 –
@mkoryak - これ以上の作業をしているのであれば、過度の最適化に過ぎません。両方とも実装するのは簡単ではなく、どちらが(潜在的に)より性能が良いのか不思議に思っていました。 –