Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: st 17. 09. 2012, 19:56:37
-
Rád bych se zeptal, kterou techniku definice funkce považujete za správnou.
function getData () { };
var getData = function() { };
var getData = function getData() { };
-
prvni dve
-
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?
-
Jasně, zkus to na jsfiddle.net (http://jsfiddle.net)
viz komentář od Eric Hamilton na http://ejohn.org/blog/javascript-as-a-first-language/ (http://ejohn.org/blog/javascript-as-a-first-language/)
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.
-
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/ (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:
//
Don't do this:
function getData() { }
// Do this instead:
var getData = function() { };
-
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:
a = function callee() {
callee.b = 1;
};
a();
alert(a.b); // Vypíše 1