如何将已声明的javascript函数指向变量

时间:2017-02-22 17:13:36

标签: javascript function

如果我想首先声明一个函数,然后在某些时候我想引用函数而不是它的变量返回值,我该怎么做?

var best = bestPresidentEver;


function bestPresidentEver(a,b){
  //for some reason always returns Trump.
}

 and then call best(a,b) instead of bestPresidentEver(a,b)

我想知道如何做到这一点,而不是在声明时将函数赋值给var。

var best = 
function bestPresidentEver(a,b){
  //for some reason always returns Trump.
}

2 个答案:

答案 0 :(得分:1)

像这样声明你的变量

var bestPresidentEver= function (a,b){
    //for some reason always returns Trump.
    return "Trump"; //:D
}

然后像这样调用该函数

//You have to declare a and b variables
var trumpHere = bestPresidentEver(a,b);

如果您的函数已经声明,只需将其分配给变量:

function bestPresidentEver (a,b){
    //for some reason always returns Trump.
    return "Trump"; //:D
}

var trumpHere = bestPresidentEver;

然后这样称呼:

var trumpAgain = trumpHere(a, b);

答案 1 :(得分:1)

如果变量存在而且它不是const,您只需将其值重新分配给函数本身即可。 防爆

var foo = 'foo';
function bar(a) {
  return 'example ' + a;
}
bar('code'); //=> "example code"

/* Further down, reassign the `foo` variable */
foo = bar;
foo('code, again'); //=> "example code, again"
  

我正在使用SignalR,我需要将它指向一个函数,我还想在应用程序的其他区域调用该函数。

如果库需要一个函数参数,你可以简单地传递那个函数。

function first(next /* expects a function parameter */) {
  return next('hello');
}

function second(prefix) {
  return prefix+ ' world!';
}
first(second); //=> "hello world!"