как вызвать функцию из функции
есть функция
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, время: 05:43. |