代码之家  ›  专栏  ›  技术社区  ›  nonopolarity

在javascript中,为什么要写“var querystringtohash=函数querystringtohash(query)…”?

  •  1
  • nonopolarity  · 技术社区  · 14 年前

    在javascript中,我看到了

    var QueryStringToHash = function QueryStringToHash  (query) {
        ...
    }
    

    为什么写这个而不是

    function QueryStringToHash(query) {
        ...
    }
    

    ?

    这是从 The $.param( ) inverse function in JavaScript / jQuery

    1 回复  |  直到 14 年前
        1
  •  6
  •   Guffa    14 年前

    声明函数意味着它是在分析脚本块时定义的,而将其分配给变量则是在运行时完成的:

    x(); // this works as the function is defined before the script block is executed
    
    function x() {}
    

    但是:

    x(); // doesn't work as x is not assigned yet
    
    var x = function() {}
    

    可以有条件地为变量分配函数。例子:

    var getColor;
    if (color == 'red') {
      getColor = function() { return "Red"; }
    } else {
      getColor = function() { return "Blue"; }
    }