#функции #переменные #javascript
Например две функции: var func1 = function(var1, var2,..., varN) { var first = var1 + var2; var second = first + varN; .... } var func2 = function() { } как-то можно передать переменные, например first во вторую функцию не объявляя её глобальной?
Ответы
Ответ 1
Как вариант так: var func1 = function(var1, var2,..., varN) { var first = var1 + var2; var second = first + varN; .... return first; } var func2 = function(getFirst) { var first = getFirst(var1, var2,..., varN); } Вообще, функция должна что-то принимать и что-то возвращать. Лучше будет даже так: var func1 = function (args) {var first; .....; return first}, func2 = function (first)) {}; func1(func1(args)); Во избежания такой некрасивой вложенности лучше использовать временные переменные: var func1 = ...., func2 = ......, first = func1(args); func2(first)Ответ 2
Например: Вернуть переменную из одной функции, получить во второй: function f1(){ var trololo = 345; return trololo; } function f2(){ var myTrololo = f1(); } Объявить вторую функцию внутри первой : function f1(){ var trololo = 345; function f2(){ var myTrololo = trololo; } } Использовать для связи какой-нибудь объект, к которому будут иметь доступ обе функции: var GodObj = {}; function f1(){ var trololo = 345; GodObj.lala = trololo; } function f2(){ var myTrololo = GodObj.lala; } Собственно вызвать вторую функцию из первой, с некоторым обычно необязательным параметром, но конечно тут зависит от того что эта функция делает function f1(){ var trololo = 345; f2(trololo); } functin f2(trololo){ if(typeof(trololo)!='undefined') myTrololo = trololo;// Если такой параметр есть }
Комментариев нет:
Отправить комментарий