Функция в функции
window.onload = function(){ var x = new func1('k') здесь нужно вызвать функцию func2 () // появится сообщение alert('k') } function func1(e) { var Myvar = e; function func2 (){ alert(Myvar) } } |
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); } } } |
А если мне нужно функцию func2() вызвать внутри функции func1(), а так она не вызывается.
Пробовал так - не работает var x = new func1('k'); //x.func2(); function func1(e) { function func2(){ alert(e); } return { func2 : func2() } } |
Объясните мне кто нибудь что значит приведённая строка внизу, учитывая что func2() это alert(e)
return { func2 : func2() } |
Кажется разобрался:
var x = new func1('k'); //x.func2(); function func1(e) { function func2(){ alert(e); } return { func2 : func2 } } |
Хорошо, что значит тогда это:
return { func2 : func2 } Какого результата вы добиваетесь этим? Я реально не в теме. |
с помощью функции x.func2(); я могу вызвать функцию func2();, находящуюся в функции func1(), независимо от её расположения.
Хотя я честно говоря сам не понимаю, как это работает: 'return { func2 : func2 }' |
//(расположения x.func2();)
|
Ну я понимаю, что вы просто экспериментируете. А если просто поставить 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; } |
ну а если мне нужно, скажем, вызвать только одну из этих функций
|
Часовой пояс GMT +3, время: 08:58. |