Javascript a definice funkce

st

Javascript a definice funkce
« kdy: 17. 09. 2012, 19:56:37 »
Rád bych se zeptal, kterou techniku definice funkce považujete za správnou.

Kód: [Vybrat]
function getData () { };

var getData = function() { };

var getData = function getData() { };


DK

Re:Javascript a definice funkce
« Odpověď #1 kdy: 17. 09. 2012, 19:57:55 »
prvni dve

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Javascript a definice funkce
« Odpověď #2 kdy: 17. 09. 2012, 21:24:41 »
první definuješ funkci s názvem getData, druhá do proměnné getData si dáš funkci. Obojí je správně

Ta třetí je obojí dohromady, je to dáké zhulené. Fakt Ti to interpret vezme?

st

Re:Javascript a definice funkce
« Odpověď #3 kdy: 17. 09. 2012, 22:25:38 »
Jasně, zkus to na jsfiddle.net

viz komentář od Eric Hamilton na  http://ejohn.org/blog/javascript-as-a-first-language/



Citace
Unless you want your call stacks to look like:
(Anonymous function)

You might want to change your example to: var getData = function getData() { };
When you name your function expressions, that name is only used inside that function, so it doesn’t conflict with the getData variable outside the function.

st

Re:Javascript a definice funkce
« Odpověď #4 kdy: 18. 09. 2012, 11:47:18 »
I zde ve článku Petra Staníčka je tento zápis použit. Zdůvodnění stejné jako v předchozím případě.
http://www.zdrojak.cz/clanky/javascript-a-oblast-pusobnosti-promennych-dil-prvni/nazory/

Zajímalo by mě kdy kterému zápisu dát přednost, např. John Resig píše:
Kód: [Vybrat]
//
Don't do this:
function getData() { }
// Do this instead:
var getData = function() { };


Riff

Re:Javascript a definice funkce
« Odpověď #5 kdy: 19. 09. 2012, 14:54:02 »
Správně jsou všechny tři možnosti. Třetí varianta umožňuje přistupovat k objektu funkce stejně jako přes arguments.callee:

Kód: [Vybrat]
a = function callee() {
    callee.b = 1;
};
a();
alert(a.b); // Vypíše 1