Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Вызов функции, находящий внутри метода (https://javascript.ru/forum/library-toolkit-framework/45429-vyzov-funkcii-nakhodyashhijj-vnutri-metoda.html)

pro_xaoc 28.02.2014 11:45

Вызов функции, находящий внутри метода
 
Уважаемые, помогите решить проблемку.
Есть метод, внутри этого метода описана функция. Надо сделать доступ извне этой функции. Примерно так:
var obj={};
obj.func1 = function(){
  function myFunc(){}
}
obj.func1.myFunc();

но так не работает, пробовал так:
var obj={};
obj.func1 = function(){
  var myFunc = function(){}
}
obj.func1.myFunc();

тоже не работает. Тогда как? Заранее спасибо!

danik.js 01.03.2014 01:09

Цитата:

Сообщение от pro_xaoc
тоже не работает. Тогда как?

Ты знаешь че такое локальная переменная? Пока функция, в которой локальная переменная объявлена, не исполнится - переменной создано не будет. То есть ты пытаешься вызвать функцию, которая даже не существует, шаришь?

Почему бы не объявлять все функции свойствами obj, по примеру func1?

pro_xaoc 01.03.2014 08:29

danik.js, спасибо за очень быстрый ответ,
я знаю, что такое локальные переменные, решение оказалось таким: надо было объявить член объекта как объект.
var obj={};
obj.func1={};
obj.func1.myFunc = function(){}
obj.func1.myFunc();

danik.js 01.03.2014 08:41

Кстати почему бы не записать литералом?
var obj = {
    func1: {
        myFunc: function() {}
    }
};

obj.func1.myFunc()

pro_xaoc 01.03.2014 09:27

danik.js,
хмм, и правда работает, и более наглядно выглядит. Спасибо!


Часовой пояс GMT +3, время: 10:05.