2016-03-31 19 views
1

Ich lerne Dinge von Grund auf und versuche zu verstehen, wie man Werte aus Funktionen besser bekommt. Betrachten Sie die folgenden Beispiele.Rückgabewert von einer benannten Funktion

/* Screen Orientation Check */ 
function screenOrientation() { 
    var screenOrientationCheck = ($(window).width() > $(window).height())? 90 : 0; 
    console.log(screenOrientationCheck) ; 
} 
screenOrientation(); 

Oben gibt mir die Bildschirmausrichtung.

/* Viewport Height Check */ 
function viewportHeight() { 
    var viewportHeightCheck = document.documentElement.clientHeight 
    console.log('viewportHeight = '+viewportHeightCheck); 
}; 
viewportHeight(); 

Dies würde mir die Ansichtsfenster Höhe geben.

Aber jetzt, wenn ich mit den Ergebnissen dieser Funktionen arbeiten bin ich nicht sicher, wie das zu tun.

if (viewportHeight() > 600) { 
    console.log('Hooray!!'); 
}; 

Zum Beispiel wird dies nie ausgelöst.

if (screenOrientation() === 90) { 
    console.log('Hooray!!'); 
}; 

Ebenso wird auch dieser nie ausgelöst.

Wenn Ich mag screenOrientationCheck oder viewportHeightCheck anmelden es ist undefined weil die einzigen Variablen im Rahmen der Funktion existieren. So viel habe ich verstanden. Hinzufügen von return zu beiden Funktionen wie folgt auch nicht den Trick.

/* Viewport Height Check */ 
function viewportHeight() { 
    var viewportHeightCheck = document.documentElement.clientHeight 
    console.log('viewportHeight = '+viewportHeightCheck); 
    return viewportHeightCheck; 
}; 

Ich weiß, das ist grundlegende Dinge. Daher entschuldige ich mich, dass Sie sich die Zeit genommen haben, dies zu fragen.

Ich versuche zu verstehen, wie ich mit Werten erstellt in Funktionen und rufe diejenigen, immer wieder in dem Code anstelle von anonymen Funktionen arbeiten kann, die auf der Flucht ausgeführt werden und nur einmal.

Wenn jemand da draußen die Nerven hat, so ausführlich wie möglich zu antworten, vielleicht mit einem Beispiel, das am Ende Hooray!! protokolliert, dann wäre das ein gutes Ende.

Antwort

5

Sie müssen Rückkehr den Wert. Hier ist ein Jsfiddle

function getViewportHeight() { 
    var viewportHeightCheck = document.documentElement.clientHeight 
    return viewportHeightCheck; 
}; 

if (getViewportHeight() > 600) { 
    console.log('Hooray!!'); 
}; 
+1

Die Frage ist zu fragen, wie diese von den OPs letztes Beispiel unterscheidet, die offenbar nicht funktioniert hat? – Andy

+0

Ich wählte dies als Antwort, weil es die Variable für den Rückgabewert verwendet, wie in meiner Frage beschrieben. Obwohl es mir auch geholfen hat, @ [juliobetta] (https://stackoverflow.com/users/561610/juliobetta) zu sehen, antworte mit der Funktionsanweisung hinter 'return'. Ich habe genau den gleichen Code hier, also wurde entweder der Browser-Cache nicht vollständig geleert oder die Seite neu geladen oder das Browser-Fenster zu klein für das px in der Höhe, das ich hatte. Nach dem Posten der Frage ging ich für ein paar Stunden, lud die Seite bei der Rückkehr (Wortspiel) neu und alles war in Ordnung. Obwohl es großartig ist, dies bestätigt zu haben. – lowtechsun

1

In Ihrem speziellen Fall arbeiten, sollten diese Funktionen einen Wert zurückkehren, so dass jedes Mal, wenn sie aufgerufen werden, erhalten Sie einen Wert erhalten nach den Seitenabmessungen.

/* Screen Orientation Check */ 
 
function screenOrientation() { 
 
    return ($(window).width() > $(window).height())? 90 : 0; 
 
} 
 

 

 
/* Viewport Height Check */ 
 
function viewportHeight() { 
 
    return document.documentElement.clientHeight 
 
}; 
 

 

 
$('#action').on('click', function() { 
 
    $('#info').html('Screen Orientation: ' + screenOrientation() + '<br>' + 
 
        'Viewport Height: ' + viewportHeight()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div id="info"></div> 
 

 
<p> 
 
    <button id="action">Get Values</button> 
 
</p>

+1

Funktioniert gut, danke. – lowtechsun

Verwandte Themen