Fórum Root.cz
		Hlavní témata => Vývoj => Téma založeno: Kolemjdoucí  23. 11. 2015, 11:24:13
		
			
			- 
				Ahoj, proč nepracuje 1 kód, když 2 pracuje a dělá to stejný ?
 
 var array = [0, 1, 2];
 array.forEach(myFnc[i, "b", "c"]);
 var array = [0, 1, 2];
 array.forEach(function(i){
 myFnc(i, "b", "c");
 });
 
- 
				Tipnu (Javascript neznám):
 
 Metoda forEach očekává uzávěru/funkci o 1 parametru, to v 1. případě není splněno.
- 
				forEach očekává callback s parametry currentValue, index, array:
 
 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
 
 Můžeš mu tak předat tvou funkci myFnc, pokud bude odpovídat tomu callbacku. Případně s tím můžeš čarovat pomocí bind metody:
 
 var myFnc = function(a, b, val) {
 console.log('val:' + val);
 console.log('a:' + a);
 console.log('b:' + b);
 }
 
 var array = [0, 1, 2];
 array.forEach(myFnc.bind(null, "a", "b"));
 
 
- 
				V prvním příkladu máte myFnc a za tím hranaté závorky, takže jde o přístup k prvku pole nebo mapy. Jako klíč máte uvedeno i, "b", "c", což je několik výrazů oddělených čárkou, které se postupně vyhodnotí a použije se hodnota posledního. Ve vašem případě je to tedy ekvivalentní zápisu myFnc["c"] nebo myFnc.c. První kód je tedy ekvivalentní tomuto:
 
 var array = [0, 1, 2];
 array.forEach(myFnc.c);
 
 Což asi bude něco jiného, než jste chtěl napsat…