2011-08-25 18 views
13

Jaka jest różnica pomiędzy:Kiedy używać zwrotu i co dzieje się z zwracanymi danymi?

function bla1(x){console.log(x)} 

i

function bla(x){return console.log(x)} 

W jakich przypadkach należy używać return?

również, gdy zwracana jest wartość z funkcji, co się z nią dzieje? jest gdzieś przechowywany?

+0

Ogólnie, jeśli zwracana jest wartość z funkcji, którą należy przypisać do kompatybilnego obiektu/zmiennej w wywołującym. –

Odpowiedz

17

Jaka jest różnica

Pierwsza funkcja zwraca undefined (jak to nic nie return jawnie), drugi powraca niezależnie console.log powraca.

W jakich przypadkach należy użyć zwrotu?

Kiedy funkcja generuje pewną wartość i chcesz ją przekazać z powrotem do osoby dzwoniącej. Weźmy na przykład Math.pow. Wymaga dwóch argumentów, podstawy i wykładnika, i zwraca podstawę podniesioną do wykładnika.

Po zwróceniu wartości z funkcji, co się z nią dzieje? jest gdzieś przechowywany?

Jeśli chcesz przechowywać wartości zwracanej, a następnie trzeba przypisać ją do zmiennej

var value = someFunction(); 

ten przechowuje wartość zwracaną someFunction w value. Jeśli wywołać funkcję bez przypisywania zwracanej wartości, to wartość jest po prostu cicho spadł:

someFunction(); 

Są podstawy programowania i są nie tylko istotne dla JavaScriptu. Powinieneś znaleźć książkę, która wprowadza te podstawy, w szczególności dla JavaScript, polecam przeczytać MDN JavaScript Guide. Pomocny może być również artykuł o Wikipedii na temat Functions.

+0

Dzięki za tę odpowiedź. Pięknie odpowiedział i prosto do rzeczy. To sprawiło, że w końcu zrozumiałem użycie zwrotu i co się dzieje z tą zwróconą wartością. Zawsze zastanawiałem się, co stało się z zwróconą wartością. –

4

Powrót w funkcji to sposób przekazywania danych z funkcji.

Przykład:

function test(){ 
    var test = 1+1; 
    return test; 
} 

var feedback = test(); //feedback would now contain the value 2 if outputted. 

Możemy również wysłać zmienną do funkcji, a następnie odesłać go z powrotem na zewnątrz.

Przykład 2:

function test(i){ 
    i= i+1; 
    return i; 
} 

var feedback = test(1); //feedback would also output the value 2. 
0

Jak już wspomniano, powrót daje możliwość wywołania funkcji i uratować swoją wartość Skrutacyjnej.

Oto mały przykład:

function bla(x) { return "blablabla"; } 

Gdybym wywołać metodę będę się ciąg z blablabla:

var blastring = bla(x); 
alert(blastring); 

Spowodowałoby wpisu z blablabla.

0

Pod numerem return określasz wartość function. Możesz użyć tej wartości, aby wykonać dalsze operacje lub zapisać ją w zmiennej i tak dalej.

Od console.logreturn ów undefined, przykłady w swoim pytaniu są równoważne, jak function nie osiągając return powróci undefined również. Ale pozwól, że podam przykład:

function sum(arr) { 
    var s = 0; 
    for (var index in arr) { 
     s += arr[index]; 
    } 
    return s; 
} 

function prodsum(arr, scalar) { 
    return scalar * sum(arr); 
} 

console.log(prodsum([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3)); 

wynik będzie 165. Jeśli usuwamy return s, a następnie oba function s będzie returnundefined:

function sum(arr) { 
    var s = 0; 
    for (var index in arr) { 
     s += arr[index]; 
    } 
    s; 
} 

function prodsum(arr, scalar) { 
    scalar * sum(arr); 
} 

console.log(prodsum([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3)); 

i wynik będzie undefined jako dobrze. Zasadniczo, jeśli chcesz, aby function miał wartość końcową lub końcową, masz w sobie return.

0

Jeśli po prostu dodasz return; do funkcji. Zatrzymuje wykonywanie funkcji.

Powiązane problemy