私は基礎から物事を学び、関数の値をより良く得る方法を理解しようとしています。次の例を考えてみましょう。名前付き関数からの戻り値
/* Screen Orientation Check */
function screenOrientation() {
var screenOrientationCheck = ($(window).width() > $(window).height())? 90 : 0;
console.log(screenOrientationCheck) ;
}
screenOrientation();
上記は私に画面の向きを与えます。
/* Viewport Height Check */
function viewportHeight() {
var viewportHeightCheck = document.documentElement.clientHeight
console.log('viewportHeight = '+viewportHeightCheck);
};
viewportHeight();
これは私にビューポートの高さを与えます。
しかし、私はそれらの機能の結果を処理したいと思っている場合、私はそれを行う方法がわかりません。
if (viewportHeight() > 600) {
console.log('Hooray!!');
};
たとえば、これは決して発生しません。
if (screenOrientation() === 90) {
console.log('Hooray!!');
};
同様に、これは決して発生しません。
screenOrientationCheck
またはviewportHeightCheck
を記録したいのであれば、変数は関数の範囲内にしか存在しないため、undefined
です。それほど私は理解している。以下のような機能にreturn
を追加することも、このトリックを行いません。
/* Viewport Height Check */
function viewportHeight() {
var viewportHeightCheck = document.documentElement.clientHeight
console.log('viewportHeight = '+viewportHeightCheck);
return viewportHeightCheck;
};
これは基本的なものです。ですから、貴重な時間をとって申し訳ありません。
私は、関数で作成された値をどのように扱うことができ、実行時に一度だけ実行される匿名関数を持つのではなく、コード内で何度も呼び出すことができます。
可能であれば細かい回答をする人がいれば、最後にHooray!!
というログを記録する例があります。
尋ねる質問では、これは明らかに動作しませんでした最後の例のOPと異なっている方法ですか? – Andy
これは、私の質問で概説したような 'return'値の変数を使用するので、これを答えとして選択しました。 'return'の背後にある関数命令で@ [juliobetta](https://stackoverflow.com/users/561610/juliobetta)に答えてくれるのにも役立ちました。私はここでまったく同じコードを持っているので、ブラウザのキャッシュが完全に空になっていないか、ページが適切にリロードされていないか、またはブラウザウィンドウが小さすぎて高さがpxになっていません。私は数時間放置した質問を投稿して、戻ってきたときにページをリロードして、すべてがOKでした。これを確認したことは素晴らしいことですが。 – lowtechsun