2012-06-19 5 views
0

Я просто хочу, чтобы назначить переменную в функцию, так что она может быть вызвана позже, но в этом fiddel функция вызывается каждый раз, когда я нажать кнопку «вызова»Почему эта функция вызывается?

Если это не просто назначить функцию к varialbe «удовольствие 'и не вызывать предупреждение?

скрипку: http://jsfiddle.net/vkvUR/

код:

$("#button").click(myFun); 

    <input name="Button3" type="button" value="Invoke" id="button"> 

    function myFun(myarg){ 
     var fun = alert(myarg); 

    } 

    function myFunParam(myFun){  
     if (typeof myFun === "function")  
      myFun('foo'); // alerts "foo" 
    } 
+0

Введите 'var fun = alert ('foo');' в консоли и посмотрите, что произойдет;) 'alert' вызывается, потому что вы его вызываете! –

ответ

0

Изменение var fun = alert(myarg); в var fun = function(){alert(myarg)};, если вы хотите использовать переменную fun позже

0

alert(myFun) вызывает тревоги метод, который затем вызывает всплывающее окно. Возможно, вы имели в виду нечто подобное. Когда вы передаете параметры функции внутри parens после имени функции, она будет вызываться. Чтобы ссылаться на функцию без ее вызова, оставьте параметры.

​var foo = alert; 
foo("bar")​​​​​​​​​​​; //alerts "bar" 
Смежные вопросы