Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.09.2012, 19:51
Аспирант
Отправить личное сообщение для syegorius Посмотреть профиль Найти все сообщения от syegorius
 
Регистрация: 28.08.2010
Сообщений: 91

как завернуть несколько функций в одну
доброе время суток

подскажите как быть в таком случае - есть вот такой кусок кода:

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, да и не факт, что я где-то что-то упущу и тогда все вообще накроется медным тазом

заранее спасибо за помощь
Ответить с цитированием
  #2 (permalink)  
Старый 20.09.2012, 21:10
Профессор
Отправить личное сообщение для BallsShaped Посмотреть профиль Найти все сообщения от BallsShaped
 
Регистрация: 14.09.2012
Сообщений: 162

Сделай так:
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
}
Ответить с цитированием
  #3 (permalink)  
Старый 20.09.2012, 23:41
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,103

ЭЭ, а нахрена что-то заменять?
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() )
__________________
29375, 35

Последний раз редактировалось Aetae, 20.09.2012 в 23:45.
Ответить с цитированием
  #4 (permalink)  
Старый 21.09.2012, 00:25
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Если функция 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
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как c функцией .ajax() передать несколько значений в php? Faab jQuery 11 19.11.2013 10:03
Ползунок как на YouTube и условие. dailclever Элементы интерфейса 1 23.07.2012 18:51
Как сделать несколько полей подсказок для слайдера DaniBeiss Events/DOM/Window 1 23.06.2012 15:49
Chart несколько значений в одну колонку mycoding ExtJS 1 13.12.2010 09:36
Как постоянно запускать одну и туже ссылку? Maxim Общие вопросы Javascript 28 27.02.2009 08:25