как завернуть несколько функций в одну
доброе время суток
подскажите как быть в таком случае - есть вот такой кусок кода:
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, время: 12:01. |