Как передать и вызвать функцию в качестве аргумента в Javascript? - PullRequest
7 голосов
/ 19 мая 2010

Я хочу передать анонимную функцию другой функции, но, похоже, она работает не так, как хотелось бы.

Я приложил код, думаю, он даст вам лучшее представление о том, что я буду делать.

Как мне успешно передать функцию в качестве аргумента и затем вызвать ее?

<script language="javascript" type="text/javascript">
function do_work(success) {
    success;
}

do_work(function () {
    alert("hello")
});

</script>

Ответы [ 2 ]

14 голосов
/ 19 мая 2010

Вы должны вызвать функцию:

function do_work(success) {
    success();
}
0 голосов
/ 19 мая 2010

Переменная success является «экземпляром» Функция , поэтому вы также можете вызвать apply () , что позволит вам переопределить область действия:

function do_work(success) {
    var foo = {
       bar : "bat"          
    }
    success.apply(foo);
}

do_work(function () {
 alert(this.bar)
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...