Aetae,
Спасибо, я понял, правда это объяснение было не очень понятно из-за одинакового названия переменной, вот так, имхо, понятнее:
g.addEventListener("click", function(a){
return function(){
faunaAdd(a);
}
}(scale) ); //хардкор classic
То есть таким образом в функцию передаётся само значение скейла в переменную "а". Правда зачем ретурн я всё равно не понял.) Впрочем, без него не работает, так что нужен.)
Впрочем, вместо этого можно использовать этот вариант:
g.scale = scale;
g.addEventListener("click", faunaAdd.bind(this, scale));
Но я так понял лучше всё же тот что выше использовать?