как завернуть несколько функций в одну
доброе время суток
подскажите как быть в таком случае - есть вот такой кусок кода: var a=1,b=2,c=3 function d(){ return e(a,20) } function e(f,g){ return f*g } function e(f,g){ return f+g } как вы заметили есть две ф-ции e()... как мне завернуть ф-цию d() и первую e(f,g) так, что бы ф-ция d() вызывала именно первую ф-цию e(f,g), а не вторую, причем я сейчас показал вам пример, в реале у меня больше сотни ф-ций и вот такой метод: function mainFunc(){ var a=1,b=2,c=3 function d(){ return this.e(a,20) } function e(f,g){ return f*g } } function e(f,g){ return f+g } не совсем подходит, так как у меня руки отпадут ставить this, да и не факт, что я где-то что-то упущу и тогда все вообще накроется медным тазом заранее спасибо за помощь |
Сделай так:
var mainFunc = { a:1,b:2,c:3, d: function (){ return e(this.a,20) }, e: function (f,g){ return f*g } }; function e(f,g){ return f+g } |
ЭЭ, а нахрена что-то заменять?
function mainFunc(){ var a=1,b=2,c=3 function d(){ return e(a,20) } function e(f,g){ return f*g } alert( d() ) } function e(f,g){ return f+g } mainFunc() И можно даже так: var a=1,b=2,c=3 var d = function(){ function d(){ return e(a,20) } function e(f,g){ return f*g } return d }(); function e(f,g){ return f+g } alert( d() ) a = 2; alert( d() ) |
Если функция e используется только внутри функции d, то функцию e можно определить там:
var a=1,b=2,c=3 function d(){ function e(f,g){ return f*g } return e(a,20) } function e(f,g){ return f+g } |
Часовой пояс GMT +3, время: 23:21. |