как вызвать функцию из функции
есть функция
function inp(){ function inputupload () { alert('inputupload') } } как вызвать алерт в таком случае |
либо внутри функции или необходимо вернуть функцию:
function inp(){ function inputupload () { alert('inputupload') } inputupload (); } inp(); function inp(){ return function () { alert('inputupload') } } inp()() |
Дело в том что inp() я хочу запускать при загрузке документа но так чтобы inputupload() запускался только при обращении к ней, то есть чтобы Алерт выводился только когда я обращусь к inputupload() а не в момент загрузки документа я бы написал так но так не работает
function inp(){ function inputupload () { alert('inputupload') } } $(document).ready(function(){ Inp() }) Inp().inputupload () |
skrudjmakdak,
А скажите зачем двойные скобки во втором варианте |
Цитата:
|
Верните объект и не парьтесь.
|
kostyanet,
а как? приведите пример |
так как вернуть объект кто нибудь может подсказать?
|
Почему я вижу только load в алерте?
inp = function (){ alert('load') function alload(){ alert('return load') } } myobj= new inp; myobj.alload() |
Цитата:
var inp = function (){ alert('load'); this.alload=function (){ alert('return load'); }; }; var myobj= new inp; myobj.alload(); |
Ну как возвращают обхекты? Ну так например
return {}; Ну явно же глюкавая логика. Не бывает таких задач как вы придумали. То есть надо раньше смотреть - откуда такая потребность вылезла. |
<html><head><script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> <script> function inp(){ return function () { alert('inputupload') } } $(document).ready(function(){ inp(); }) var res = inp();res(); //<-- это тоже самое что и inp()(); </script> </head> <body></body></html> |
почитайте про переменные, как они устроены.
вот смотрите: var a = 1;//есть переменная а console.log(a); //если вывести переменную в консоль, то там высветиться 1, думаю понятно почему.. переменная равна единице var str = 'stroka';//переменная типа string, т.е. строка console.log(str);//выведем в консоль, получим результат stroka теперь возьмем массив: var ar = [4, 7, 5]; console.log(ar[0]); //выведем 0-ой элемент массива, получим 4 console.log(ar); //выведем весь массив возьмем функцию: function fn() { alert('fn!'); } fn(); //вызовем ее. в алерт выпадет fn! console.log(fn);//теперь выведем fn в консоль, ведь fn - это тоже переменная, как и a, str, ar. только она хранит не число, строку, массив а хранит она функцию теперь возьмем еще одну функцию function mfn(a){ console.log(a); //а равняется четырем, т.к. передали мы именно 4 return 5 + a; //функция может возвращать значения a + 5 (a равняется 4), то результат будет 9 } var res = mfn(4);//в функцию мы передаем параметр 4. результат выполнения функции равен 9 console.log(res); теперь возьмем еще одну функцию: function ffn(){ //внутри функции ffn мы создаем еще одну функцию, назовем ее myfn function myfn(){ alert(1); } console.log(myfn); //попробуем вывести ... return myfn;//а теперь отдадим результат. т.е. мы отдали переменную myfn, в которой хранится функция } var res = ffn(); //вызовем функцию ffn и результатом выполнения этой функции будет другая функция, а именно myfn. сохраним результат в переменную res console.log(res); //выведем значение res res(); //т.к. res это функция, то можем ее вызвать .. |
Задача была в точности наоборот, и где foo-bar-baz?
|
Часовой пояс GMT +3, время: 04:59. |