2017-11-05 18 views
0

レイアウトのスラッシングを防ぐため、window.innerHeightとwindow.innerWidthの値をキャッシュします。私は、このモジュールがあると仮定して修正しています:window.innerHeightとwindow.innerWidthのキャッシュ値

var windowHeight = window.innerHeight; 
var windowWidth = window.innerWidth; 

module.exports = { 
    h: windowHeight, 
    w: windowWidth 
}; 

ウィルのみアクセス:

browserified
module.exports = { 
    h: window.innerHeight, 
    w: window.innerWidth 
}; 

、window.innerHeightとwindow.innerWidthは毎回プロパティが使用されているアクセスしますが、以下のモジュールいますHeightとwindow.innerWidthは一度ですか?エクスポートされたプロパティに複数回アクセスした場合でも

答えて

1

私はあなたが正しいとは思わない...私は両方の例が値をキャッシュすると思います。

実際には、アプリケーションが起動されたときにモジュールコードが実行され、requireを使用して利用できるようになりました。それぞれrequireで再実行されません。

module.exports = { 
    cachedH: window.innerHeight, // will not change 

    calculatedH: function() { 
     return window.innerHeight; // will recalculate each time called 
    } 
}; 
+0

最初の例のプロパティは、値としてではなく参照として渡されますか?いいえ、キャッシュされていない値が必要な場合は、メソッドに値を渡す必要があります。 – vsjn3290ckjnaoij2jikndckjb

+0

あなたは私が間違っていることを証明することができますが、私はそうは思わない。私は現在の日付に設定してみようとしています。そして、私のアプリが起動した時刻を返しています。 – arbuthnott

+0

@vsjnいいえ、数値は常に値によって渡されます。 –

関連する問題