Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.11.2013, 16:34
Интересующийся
Отправить личное сообщение для Vladjiss Посмотреть профиль Найти все сообщения от Vladjiss
 
Регистрация: 22.06.2013
Сообщений: 18

Функция в функции
window.onload = function(){
var x = new func1('k')
здесь нужно вызвать функцию func2 () // появится сообщение alert('k')
}
function func1(e) {
	var Myvar = e;
	function func2 (){
		alert(Myvar)
	}
}
Ответить с цитированием
  #2 (permalink)  
Старый 06.11.2013, 16:51
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

var x = new func1('k');
x.func2(); // появится сообщение alert('k')
var y = new func1('l');
y.func2(); // появится сообщение alert('l')

function func1(e) {
	return {
		func2 : function(){
			alert(e);
		}
	}
}
Ответить с цитированием
  #3 (permalink)  
Старый 06.11.2013, 17:30
Интересующийся
Отправить личное сообщение для Vladjiss Посмотреть профиль Найти все сообщения от Vladjiss
 
Регистрация: 22.06.2013
Сообщений: 18

А если мне нужно функцию func2() вызвать внутри функции func1(), а так она не вызывается.
Пробовал так - не работает

var x = new func1('k');
//x.func2(); 

 
function func1(e) {
	function func2(){
            alert(e);
    } 
	
    return {
        func2 : func2()
        }
}
Ответить с цитированием
  #4 (permalink)  
Старый 06.11.2013, 17:39
Профессор
Отправить личное сообщение для Faab Посмотреть профиль Найти все сообщения от Faab
 
Регистрация: 16.04.2012
Сообщений: 310

Объясните мне кто нибудь что значит приведённая строка внизу, учитывая что func2() это alert(e)
return { func2 : func2() }
Ответить с цитированием
  #5 (permalink)  
Старый 06.11.2013, 17:39
Интересующийся
Отправить личное сообщение для Vladjiss Посмотреть профиль Найти все сообщения от Vladjiss
 
Регистрация: 22.06.2013
Сообщений: 18

Кажется разобрался:
var x = new func1('k');
//x.func2();

function func1(e) {
    function func2(){
            alert(e);
    }
    return {
        func2 : func2
    }
}
Ответить с цитированием
  #6 (permalink)  
Старый 06.11.2013, 17:43
Профессор
Отправить личное сообщение для Faab Посмотреть профиль Найти все сообщения от Faab
 
Регистрация: 16.04.2012
Сообщений: 310

Хорошо, что значит тогда это:

return { func2 : func2 }


Какого результата вы добиваетесь этим? Я реально не в теме.
Ответить с цитированием
  #7 (permalink)  
Старый 06.11.2013, 17:47
Интересующийся
Отправить личное сообщение для Vladjiss Посмотреть профиль Найти все сообщения от Vladjiss
 
Регистрация: 22.06.2013
Сообщений: 18

с помощью функции x.func2(); я могу вызвать функцию func2();, находящуюся в функции func1(), независимо от её расположения.
Хотя я честно говоря сам не понимаю, как это работает: 'return { func2 : func2 }'
Ответить с цитированием
  #8 (permalink)  
Старый 06.11.2013, 17:47
Интересующийся
Отправить личное сообщение для Vladjiss Посмотреть профиль Найти все сообщения от Vladjiss
 
Регистрация: 22.06.2013
Сообщений: 18

//(расположения x.func2()
Ответить с цитированием
  #9 (permalink)  
Старый 06.11.2013, 17:51
Профессор
Отправить личное сообщение для Faab Посмотреть профиль Найти все сообщения от Faab
 
Регистрация: 16.04.2012
Сообщений: 310

Ну я понимаю, что вы просто экспериментируете. А если просто поставить return, вы вызвать внутреннюю функцию не сможете?

var x = new func1('k');
//x.func2();
//x.func3();
//x.func4();


function func1(e) {
    function func2(){
            alert("func2" + e);
    }
    function func3(){
            alert("func3" + e);
    }
    function func4(){
            alert("func4" +e);
    }
    return;
}
Ответить с цитированием
  #10 (permalink)  
Старый 06.11.2013, 18:02
Интересующийся
Отправить личное сообщение для Vladjiss Посмотреть профиль Найти все сообщения от Vladjiss
 
Регистрация: 22.06.2013
Сообщений: 18

ну а если мне нужно, скажем, вызвать только одну из этих функций
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция в Функции SleepTT Общие вопросы Javascript 6 10.11.2011 11:10
Функция в функции. Обработчики клика. Запутался =) DorianLeroy Общие вопросы Javascript 8 29.09.2011 16:17
В качестве параметра функции другая функция, как? Sintez Я не знаю javascript 13 11.06.2009 11:10
Замыкание - это... Zeroglif Общие вопросы Javascript 11 06.03.2009 22:04