2015-10-22 2 views
1

Вот моя функция Javascript;Как передать параметр в функции в модульном шаблоне в javascript

var searchbox=function(){ 
    var _expandbox=function(count){ 
    }; 

    var _events=function(){ 
     setTimeout(_expandbox,3000); 
    } 

    var _init=function(){ 
     _events(); 
    }; 

    return { 
     init: _init 
    }; 
}(); 

$(document).ready(function(){ 
    searchbox.init(); 
}); 

Здесь проблема в том, если я вызываю функцию как SetTimeout (_expandbox (4), 3000) он не work.So вписатьтся помочь мне, как добавить параметр в функции.

+0

Это как первый хит на Google с Frase * "не SetTimeout рабочего" * -> http://stackoverflow.com/questions/20890943/javascript -settimeout-not-working – adeneo

+0

Я не говорю о том, почему setTimeout не работает. Мой вопрос о том, как передать параметр в функции в модульном шаблоне javascript. –

+0

Не имеет значения, какой шаблон вы используете, вызов функции, а не ссылка на нее в 'setTimeout', является вашей проблемой, и это дубликат нескольких других вопросов, и ответ ниже такой же, как и эти дубликаты. – adeneo

ответ

1

Попробуйте обернув его в анонимную функцию:

setTimeout(function() { _expandbox(4); }, 3000); 
+0

Спасибо. Я хочу знать, почему setTimeout (_expandbox (4), 3000); не может дать правильный ответ. –

+0

Первым параметром для setTimeout является функция 'setTimeout (_expandbox (4), 3000);' передает возвращаемое значение '_expandbox (4)' в качестве параметра, что является недопустимым. – Griffith

+1

@ Dhwani91 - всякий раз, когда вы добавляете круглые скобки, вы вызываете функцию немедленно и передаете возвращаемое значение, которое в этом случае является 'undefined' to' setTimeout'. Существует разница ** в вызове ** функции с круглыми скобками и ** ссылка ** на функцию с ее именем, которая будет вызываться позже. – adeneo

Смежные вопросы