2

パフォーマンスを向上させるために、次のようにグローバルをローカルにキャッシュすることをお勧めします。

function showWindowSize() {
    var w = window;
    var width = w.innerWidth;
    var height = w.innerHeight;
    alert("width: " + width + " height: " + height);
}

「this」キーワードを使用する場合も同じですか、それとも既にキャッシュされていますか?

例:

Game.prototype.runGameLoop = function() {
  var self = this;
  self.update();
  self.draw();
};
4

1 に答える 1

3

シンボルは常にローカル参照であるため、パフォーマンス上の理由thisから「キャッシュ」する必要はありません。ただし、その値を別のローカル変数に保持する理由は他にもあるかもしれません。含まれている関数からの値にアクセスする必要があるローカル関数がある場合、含まれている関数は値のコピーを作成する必要があります。thisthis

this( 「ローカル参照」と呼ぶのは完全に正確ではないかもしれません。要点は、キーワードは常にローカル関数のアクティブ化レコードに関連する値を参照するということです。)

于 2012-09-30T14:51:46.653 に答える