romasovest
@romasovest
~

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

function queue(){
	arguments[0]();
}
queue(function() {console.log(1)});


Как можно сократить аргумент? Или возможно есть другой, более пряморукий способ вызвать не анонимную функцию из аргумента.

UPD: кажется нашел

function queue(){
  arguments[0](1);
}
queue(console.log);


Но это не совсем то, хотелось бы и аргумент функции передавать, как то вот так (не валидно):

function queue(){
	arguments[0];
}
queue(console.log(1));


Хотя такое наверное совсем нелогично и невозможно. Извините за глупый вопрос :)
  • Вопрос задан
  • 153 просмотра
Пригласить эксперта
Ответы на вопрос 2
pm_wanderer
@pm_wanderer
junior-HTML
Можно функциональным подходом решить:

var fn = (function(arg){
    return function() {
        console.log(arg);
    }
}('hello'));

function queue(){
    arguments[0]();
}

queue(fn);


Примерно то же самое можно сделать и через стандартный метод bind (почитать про него можно в сети)
Ответ написан
Комментировать
lazalu68
@lazalu68
Salmon
function queue(){
  arguments[0]();
}
queue(console.log.bind(null, 1,2,3));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы